对WinX的一些整理
很久没有写WinX的东西了,开学了,很忙,呵呵,又要准备考研,没有时间来研究了,而且也没有做什么GUI,基本写的都是CUI的东西,所以到WinX就放下了。昨天写了一个最小二乘法的直线拟使程序,想做成GUI的,以后做实验的时候用,于是又想起了WinX。郁闷的是,以前的GUI基础就不好,MFC不会,SDK就会一点点,这WinX用起来也是一样差。没办法,学呗。到绅士亦花心那里,看完了他的实践,然后有一点心得了,照着源代码写了点东西。贴上来分享。
WinX怎么没有个完整的Doc啊,那个DocX我这里也不能用,真是郁闷!呵呵,没办法,都是一点查出来的,还好有Find in files,呵呵。
一、窗体背景部分
宏名 | 描述 |
WINX_BKGND_NULL() | 设定背景色为透明 |
WINX_BKGND_BRUSH(brush) | 将窗口的背景色设置为参数表示的颜色 |
WINX_BKGND_COLOR(color) | 设定背景颜色,类似于WINX_BKGND_BRUSH,但参数不同 |
WINX_BKGND_PATTERN(nBitmapId) | 设定背景为参数所指定的位图 |
WINX_CTLBKGND_NULL(mask) | 将参数所指定类型窗口的背景色 设置为透明 |
WINX_CTLBKGND_BRUSH(mask, brush) | 定控件的ID为指定的背景颜色 |
WINX_CTLBKGND_COLOR(mask, color) | 设定控件背景色,类似于WINX_CTLBKGND_BRUSH,但参数不同 |
WINX_CTLBKGND_PATTERN(mask,nBitmapId) | 设定窗口背景为参数所指定的位图 |
WINX_CTLBKGND_NULL_ALL() | 设定所有控件背景色为透明 |
其中,nBitmapId可取资源中的任意Bitmap的ID
附表1 brush取值 (拷贝自绅士亦花心)
StockBrush | color |
WHITE_BRUSH | 白色 |
LTGRAY_BRUSH | 轻灰色 |
GRAY_BRUSH | 灰色 |
DKGRAY_BRUSH | 重灰色 |
BLACK_BRUSH | 黑色 |
NULL_BRUSH | 透明 |
附表2 mask取值 (拷贝自绅士亦花心)
类名 | 描述 |
CtlMsgBox | 消息框 |
CtlEdit | 编辑框 |
CtlListBox | 列表框 |
CtlButton | 按钮 |
CtlDialog | 对话框 |
CtlScrollBar | 滚动条 |
CtlStatic | 文本框 |
附表3 color取值 (拷贝自绅士亦花心)
窗口颜色 | 描述 |
COLOR_SCROLLBAR | 滚动条 |
COLOR_BACKGROUND | 背景 |
COLOR_ACTIVECAPTION | 激活的标题栏 |
COLOR_INACTIVECAPTION | 非激活的标题栏 |
COLOR_MENU | 菜单 |
COLOR_WINDOW | 窗体 |
COLOR_WINDOWFRAME | 窗体框架 |
COLOR_MENUTEXT | 菜单文本 |
COLOR_WINDOWTEXT | 窗体文本 |
COLOR_CAPTIONTEXT | 标题栏文本 |
COLOR_ACTIVEBORDER | 激活的border |
COLOR_INACTIVEBORDER | 非激活的border |
COLOR_APPWORKSPACE | |
COLOR_HIGHLIGHT | 高亮 |
COLOR_HIGHLIGHTTEXT | 高亮文本 |
COLOR_BTNFACE | Button表面 |
COLOR_BTNSHADOW | Button 阴影 |
COLOR_GRAYTEXT | 灰文本 |
COLOR_BTNTEXT | Button 文本 |
COLOR_INACTIVECAPTIONTEXT | 非激活标题栏文本 |
COLOR_BTNHIGHLIGHT | Button 高亮文本 |
二、命令消息处理
宏名 | 描述 |
WINX_CMDS_BEGIN() | 消息分派开始,两个是等价的 |
WINX_CMDS_END() | 消息分派结束 |
WINX_CMDS_END_EX() | 消息分派结束,但消息自身没有被处理,会发给活动的子视图处理 |
WINX_CMD(nID, Function) | nID与Function 在OnCommand消息上绑定,Function接受一个hWnd参数 |
WINX_CMD_NOARG(nID, Function) | 同上,只是Function不传入hWnd |
WINX_CMD_EX(nID, nCode, Function) | nID及其通知码nCode 绑定到Function上 |
WINX_CMD_NOTIFY(nID) | nID 的消息转发给父窗口 |
WINX_CMD_RANGE(nIDFirst, nIDLast, Function) | 控件组与Function绑定 |
注:nID为控件的资源ID,Function为消息响应函数
三、界面更新消息
宏名 | 描述 |
WINX_UPDATEUI_BEGIN() | 介面更新开始 |
WINX_UPDATEUI_END() | 介面更新开始 |
WINX_UPDATEUI(nID, wType) | 对nID指定更新类型为wType |
附表1 wType 取值 (拷贝自绅士亦花心)
界面元素类型 | 描述 |
UPDUI_MENUPOPUP, | 菜单 |
UPDUI_MENUBAR | 菜单条 |
UPDUI_CHILDWINDOW | 子窗口 |
UPDUI_TOOLBAR | 工具条 |
UPDUI_STATUSBAR | 状态条 |
一些命令状态及其设置/清楚状态的函数名: (拷贝自绅士亦花心)
状态 | 描述 | 设置/清楚函数 |
UPDUI_ENABLED | 激活 | BOOL UIEnable(int nID, BOOL bEnable, |
UPDUI_DISABLED | 反激活 | |
UPDUI_CHECKED | 复选框 | BOOL UISetCheck(int nID, bool bCheck, BOOL bForceUpdate = FALSE) BOOL UISetCheck(int nID, int nCheck, BOOL bForceUpdate = FALSE)(三态) |
UPDUI_CHECKED2 | 有三种状态 | |
UPDUI_RADIO | 单选框 | BOOL UISetRadio(int nID, BOOL bRadio, BOOL bForceUpdate = FALSE) |
UPDUI_TEXT | 文本 | BOOL UISetText(int nID, LPCTSTR lpstrText, BOOL bForceUpdate = FALSE); |
UPDUI_DEFAULT | 默认按钮(对话框) | BOOL UISetDefault(int nID, BOOL bDefault, BOOL bForceUpdate = FALSE); |
注:介面更新要求你的对话框派生自WinX::UpdateUI< >