|
昨天翻到了以前的一个源码,本来是管理飞机的,现在改了改,把dx层换成gdi+了,试试自己写几个界面组件.
1\ 当前只有1个窗口和1个时钟,启动后将之透明,在上面画自己的控件
2\ 基类叫精灵类,因为本来是给游戏里用的,暂时没改名字,有些属性和方法也不适用于gui
3\ 大致原理如下:
基类是[精灵类],有1个矩形管理自己画在哪,并检测鼠标位置
当需要新控件时,要继承自[精灵类],并重载其中的[_绘画()]方法和[ON_***]系列方法,程序在运行时会按消息类型依次调用这些方法.
其中,[ON_***]系列方法必须是逻辑型返回值,返回真表示继续传递(管理器会继续调用此组件类的实例注册的回调),返回假则中断传递.这么做的原因是: 以[按钮类]举例,当点击按钮时,管理器首先通知[按钮类],并需要在[ON_**]方法中处理该类的绘画和逻辑处理,当[ON_**]方法处理返回后,才继续调用客户注册的[按钮被按下]子程序.
当前简单实现了3个组件(面板,按钮和进度条)
当前问题:
1/ 还无法接收键盘消息,不知道哪里搞错了
2/ 没有实现父子关系
3/ 结构和消息系统还比较混乱
希望: 如果你觉得比较有意思,最好也写几个组件上传,说不定也能积少成多.
gdiplus类模块.e
(308.04 KB, 下载次数: 14)
|
|