首先给出的一些枚举对窗口以及元素做了一些定义。常用的
XC_WINDOW 窗口 XC_MODALWINDOW 模态窗口 XC_FRAMEWND 框架窗口 XC_FLOATWND 浮动窗口
XC_ELE 元素 XC_BUTTON 按钮 XC_RADIO 单选按钮 XC_CHECK 复选按钮
XC_EDIT 编辑框 XC_RICHEDIT 富文本编辑框 XC_COMBOBOX 下拉组合框 XC_SCROLLBAR 滚动条
XC_SCROLLVIEW 滚动视图 XC_LIST 列表 XC_TREE 树 XC_MENUBAR 菜单条 XC_PROGRESSBAR 进度条
XC_PROPERTYPAGE 属性页 XC_SLIDERBAR 滑动条 XC_TOOLBAR 工具条 XC_STATIC 静态文本
XC_GROUPBOX 组框 XC_PICTURE 图片元素 等,主要的控件元素做了一个枚举
之后对一些元素的操作做了一个枚举
XC_ARRAY 数组操作 XC_STRING 字符串操作 XC_IMAGELIST 图片列表 XC_MENU 弹出菜单
XC_HDRAW 绘制元素 XC_FONT 字体。
句柄这一概念应用甚广,可以说是贯穿windows始末,炫彩也不例外,大量的应用了句柄操作
typedef void *HXCGUI 资源句柄,这可是很稀缺的,对于某个模块来说只有一个。
DECLARE_HANDLEX(HWINDOW) 窗口资源句柄,这个其实说白了就是void* 只不过包装了一层而已。
HELE 元素资源句柄
HMENUX 菜单资源句柄
HSTRING 字符串
HDRAW 绘制资源
HARRAY 数组资源
HIMAGE 图片资源
HXMLRES XML 资源
HFONTX 字体资源
说白了就是先用void *代表着,然后将一定的结构关联着,两者相互转化使用,携带轻巧方便。
图片绘制类型还是要说一下的,拉伸、平铺、自适应等
窗口样式这块内容呢?可以分为两部分,非客户区和客户区。
非客户区包括操作按钮(最大化、最小化、关闭),标题栏,边框,圆角,窗口是否居中,拖动窗口的边框
拖动窗口,标题栏图标和文本,规定了非客户区的组成元素之后,就重新定义了窗口样式,就是上述枚举的组合了
规定了这些之后,又对窗口消息做了枚举,无非是焦点改变、位置改变、鼠标、键盘以及非客户区的消息,以及对本元素
做了一些消息的枚举,这些包括了滚动,鼠标状态,焦点等
然后就是复合元素了,IE控件的事件以及IE相关事件的回调函数
之后对于复合元素的结构做了一个描述,比如树元素
{HDRAW hDraw;int id;int imageId,int state;bool bExpand;wchar_t *pText; RECT rcBtn;RECT rcImage;RECT rcText;}
列表
{HDRAW hDraw;int index;int subindex;int imageid;int state;RECT rc;RECT rcCheck;wchar_t *pText;}
表头
{HDRAW hDraw;int index;int imageid;int state;RECT rc;wchar_t *pText;}
基本整体的就是这些东西了,就是从一个窗体的整体分成一些零散的小块来进行描绘。