桌面管理类及窗口、控件类
来源:互联网 发布:iphone怎么切换数据 编辑:程序博客网 时间:2024/06/05 17:03
桌面管理类负责窗口的显示,传递窗口消息,管理皮肤资源等作用。
大致架构如下:
class CDesktop
{
AddWindow(CGameWin *win); // win是新增窗口的指针, 插入链表头
Render(IDirectDrawSurface TargetSurface); //TargetSurface为渲染目标
LoadSkin(LPCTSTR szSkin); //szSkin为皮肤存放的目录,自动打开为: ./skin/(szSkin)/*.*
……
}
AddWindow函数将win的指针存放到类中的一个链表里面.
链表维持的是窗口的指针地址,链表的排列顺序代表窗口的Z轴循序。
越是靠前,代表窗口越处于顶层。在Render方法中,向目标Surface渲染所有窗口。渲染顺序从链表尾开始。命令消息传递顺序从链头开始。
鼠标消息传递至窗口,窗口本身再按相同原理搜索窗口上的控件,如果不在当前窗口则继续下一个窗口的搜索。如果找到控件,则返回控件指针,存于Desktop类的私有变量,代表当前焦点所在控件。
CWin及CControl均从CObject派生,CObject有一方法GetType返回当前类的类型字符串。
CWin,CButton,CMenu等重载该函数,分别返回“Window”“Button”“Menu”等字符串。
按键消息可以根据当前焦点控件的类型,强制转换,然后进行响应操作。
例如CEdit控件为文本框,可以用ExecKey(假设)命令响应按键命令。
假如目标为CButton控件,Enter键可以直接调用Click()过程。
还要注意Enabled等属性,具体参考VB相对控件属性。
还有要防止狂按Enter导致连续点击这样的错误发生。
年初一 凌晨 4:20am,到此为止。睡觉……
- 桌面管理类及窗口、控件类
- miniGUI窗口管理及控件类
- MiniGUI 体系结构之二——多窗口管理和控件及控件类
- 桌面浮动窗口(类恶意广告)
- 设置vnc窗口大小及显示桌面
- BroadcastReceiver子类--AppWidgetProvider(管理桌面控件)之一
- 如何找到当前桌面某一窗口上的类名
- Windows 7桌面显示图标窗口类名称
- Windows 7桌面显示图标窗口类名称
- Windows 7桌面显示图标窗口类名称
- Android手机及窗口管理
- 【Qt5开发及实例】4、布局管理之停靠窗口QDockWidget类
- F7控件充当附件管理显示窗口
- 关于窗口嵌入桌面及透明的注意事项
- Ubuntu Unity 桌面快捷键及切换窗口技巧
- BroadcastReceiver子类--AppWidgetProvider(管理桌面控件)之二
- BroadcastReceiver子类--AppWidgetProvider(管理桌面控件)之三
- 桌面小控件_窗口小部件_窗口小工具_android.appwidget
- WebLogic管理最佳实践
- 4:14乱扯
- JavaServer Faces (JSF) vs Struts
- 关于23种设计模式的有趣见解(转)
- 在Struts中reset方法有什么作用(转)
- 桌面管理类及窗口、控件类
- VC小知识总结!(精品收集)
- vc使用ADO操作数据库总结 选择自 CDrea 的 Blog
- 一道JDBC菜
- C++ 栈类实力 代码分析
- (转)得不到和已失去
- (转)上辈子谁是那个埋你的人
- (转)与佛的对话
- (翻)两对夫妇