最简单的方式做到这一点,是处理WM_CTLCOLOR家庭消息:简单的方法来处理在WTL的消息,是使用一个mixin类它最繁重的工作。背景 WINUSER.H,你可以找到的定义WM_CTLCOLORMSGBOX,WM_CTLCOLOREDIT,WM_CTLCOLORLISTBOX,WM_CTLCOLORBTN,WM_CTLCOLORDLG,WM_CTLCOLORSCROLLBAR,WM_CTLCOLORSTATIC。通过检查的MSDN,你会发现,所有...
有18反映的消息:控制通知:WM_COMMAND,WM_NOTIFY,WM_PARENTNOTIFY所有者绘制:WM_DRAWITEM,WM_MEASUREITEM,WM_COMPAREITEM,WM_DELETEITEM列表框的键盘消息:WM_VKEYTOITEM,WM_CHARTOITEM其他:WM_HSCROLL,WM_VSCROLL,WM_CTLCOLOR * 在控制类,你反映你有兴趣的消息添加处理程序,然后在末尾,添加DEFAULT_REFLECTION_HANDLE...
改变CEdit颜色,响应WM_CTLCOLOREDIT消息,返回新的画刷: 1: HBRUSH OnCtlColorEdit(CDCHandle dc, CEdit edit) 2: { 3: dc.SetBkMode(TRANSPARENT); 4: dc.SetTextColor(RGB(255, 0, 0)); 5: 6: HBRUSH hBrush = ::CreateSolidBrush(RGB(216, 216, 216)); 7:returnhBrush; 8: } 最终效果: 完整...
l修改对话框和背景的颜色。 MESSAGE_HANDLER(WM_CTLCOLORDLG, OnCtrlColor) MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtrlColor) LRESULTOnCtrlColor(UINT,WPARAM,LPARAM,BOOL&) {// set background mode and text color SetBkMode((HDC)wParam,TRANSPARENT);// transparent background SetTextColor((HDC)wParam,RGB(2...
1>button则需要额外设置属性 TRANSPARENT 为 True,其他的 checkbox,static,edit等控件TRANSPARENT设置为 true或false都可以透明显示。 2>重载对话框的 WM_CTLCOLOR { if(pWnd->GetDlgCtrlID() == 控件ID) //控件可以为static,checkbox,button,edit等 {
MESSAGE_HANDLER( WM_CTLCOLORLISTBOX, OnCtlColorListBox ) MESSAGE_HANDLER( CBN_DROPDOWN, OnCbnDropdown ) MESSAGE_HANDLER( WM_GETTEXT, OnGetText ) MESSAGE_HANDLER( WM_GETTEXTLENGTH, OnGetTextLength ) CHAIN_MSG_MAP_ALT( COwnerDraw< CQsCheckComboxBox >, 1 ) ...
也正式因为MFC对WM_CTLCOLORDLG“另有打算”,使得本文的“MFC姊妹篇”中的例子为了改变对话框的背景色不得不处理了WM_ERASEBKGND消息。但是使用ATL/WTL则不需要额外处理WM_ERASEBKGND消息,因为处理WM_CTLCOLORDLG通知消息更简单。ATL/WTL没有对WM_CTLCOLORXXX系列消息统一处理,不过如果集中处理这些消息能够简化代码编写,...
控件通知消息: WM_COMMAND, WM_NOTIFY, WM_PARENTNOTIFY 自画消息: WM_DRAWITEM, WM_MEASUREITEM, WM_COMPAREITEM, WM_DELETEITEM List box 键盘消息: WM_VKEYTOITEM, WM_CHARTOITEM 其它: WM_HSCROLL, WM_VSCROLL, WM_CTLCOLOR* 在你想添加反射消息处理的控件类内不要忘了使用DEFAULT_REFLECTION_HANDLER(...
MESSAGE_HANDLER(WM_CTLCOLORDLG, OnCtrlColor) MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtrlColor) 第二步是在OnCtrlColor函数中改变文字和背景的颜色。将背景模式设置为透明,这样可以正确显示静态控件和group box控件文字。接着, 将文字设置成我们想要的颜色,最后设置背景brush。
窗口的类型 从最基本的说起,一台运行着Windows操作系统的PC的屏幕上的任何东西要么是一个窗口,要么是一个窗口上的原始绘画。Win32API提供了创建、管理和销毁窗口以及表现窗口内的图形的概念。每一个用户界面元素(控件)都存在与一个独立的窗口中,最终用户可能认为存在许多类型的窗口-图形输出窗口、用户界面标准...