扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
这次我们了解的接口的功能是如何更改窗口背景颜色,包括更改控件的背景颜色。
从step002中的几个例子中,我们可以看到在WinX中更改窗口背景色是通过一组宏来实现的:
l WINX_BKGND_BRUSH
l WINX_CTLBKGND_NULL
l WINX_BKGND_PATTERN
l WINX_CTLBKGND_BRUSH
WINX_BKGND_BRUSH带一个参数,即颜色,如GRAY_BRUSH等,这个Windows系统一致。顾名思义,就是将窗口的背景色设置为参数表示的颜色。如果你要指定一个窗口的背景色,只需要在类定义中加上这个宏就可以了,如:
下表列出了一些颜色:
颜色 |
描述 |
WHITE_BRUSH |
白色 |
LTGRAY_BRUSH |
轻灰色 |
GRAY_BRUSH |
灰色 |
DKGRAY_BRUSH |
重灰色 |
BLACK_BRUSH |
黑色 |
WINX_CTLBKGND_NULL带一个参数,即控件窗口类名,如ctlStatic。该宏将参数所指定的这类窗口的背景色 设置为透明。同样,使用方法是,在类定义中加上这个宏,如:
下表列出了一些窗口类名:
类名 |
描述 |
ctlMsgBox |
消息框 |
ctlEdit |
编辑框 |
ctlListBox |
列表框 |
ctlButton |
按钮 |
ctlDialog |
对话框 |
ctlScrollBar |
滚动条 |
ctlStatic |
文本框 |
WINX_BKGND_PATTERN带一个参数,为资源文件中一副位图的ID。该宏设定窗口背景为参数所指定的位图。如:WINX_BKGND_PATTERN(IDB_BKGND);。
于宏WINX_BKGND_BRUSH类似,但此宏有两个参数,分别为控件类名、背景颜色。设定控件的ID为指定的背景颜色。控件类名可以为多个类名相或的值,代表同时设置多个控件。如:WINX_CTLBKGND_BRUSH(CtlDialog|CtlStatic, GRAY_BRUSH);。
其他设置窗口背景的宏:
l WINX_BKGND_NULL
设定背景色为透明
l WINX_BKGND_COLOR
设定背景颜色,类似于WINX_BKGND_COLOR,但参数不同,如COLOR_WINDOW,见附表一。
l WINX_CTLBKGND_COLOR
设定控件背景色,类似于WINX_CTLBKGND_BRUSH,但参数不同,参数取值同WINX_BKGND_COLOR,见附表一。
l WINX_CTLBKGND_NULL_ALL
设定所有控件背景色为透明。
由上面可以看出,Backgrnd相关的宏,其实分为两类,一类是WINX_BKGND_XXX,一类是WINX_CTLBKGND_XXX。前者指设置窗口的背景,后者指设置一类窗口的背景。
附表一:
窗口颜色 |
描述 |
COLOR_SCROLLBAR |
滚动条 |
COLOR_BACKGROUND |
略 |
COLOR_ACTIVECAPTION |
略 |
COLOR_INACTIVECAPTION |
略 |
COLOR_MENU |
略 |
COLOR_WINDOW |
略 |
COLOR_WINDOWFRAME |
略 |
COLOR_MENUTEXT |
略 |
COLOR_WINDOWTEXT |
略 |
COLOR_CAPTIONTEXT |
略 |
COLOR_ACTIVEBORDER |
略 |
COLOR_INACTIVEBORDER |
略 |
COLOR_APPWORKSPACE |
略 |
COLOR_HIGHLIGHT |
略 |
COLOR_HIGHLIGHTTEXT |
略 |
COLOR_BTNFACE |
略 |
COLOR_BTNSHADOW |
略 |
COLOR_GRAYTEXT |
略 |
COLOR_BTNTEXT |
略 |
COLOR_INACTIVECAPTIONTEXT |
略 |
COLOR_BTNHIGHLIGHT |
略 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者