编程工具Microsoft Visual Studio 2017.
File/New/Project...
image.png
点OK按钮,
image.png在Application type下拉框中,选中Dialog based。其余打钩的选项都取消掉。
image.png image.png image.png image.png点击Finish按钮,然后按F5尝试运行程序,应该可以看到这样一个对话框。
image.png打开XXXDlg.h文件,添加成员变量m_brush:
class CXXXDlg : public CDialogEx
{
...
protected:
CBrush m_brush;
...
};
打开XXXDlg.cpp文件,在OnInitDialog()函数中将m_brush初始化为黄色。
BOOL CXXXDlg::OnInitDialog()
{
...
// TODO: Add extra initialization here
m_brush.CreateSolidBrush(RGB(255, 255, 102));
...
}
分支一, 使用Class Wizard
选择Resource View - XXX, 双击XXX/XXX.rc/Dialog/IDD_XXX_DIALOG。右键点击对话框中的任意位置,在弹出菜单中选择Class Wizard。
选择Messages Tab, 找到并双击WM_CTLCOLOR, 右边出现OnCtlColor函数,选中并点击Edit Code按钮。
删除OnCtlColor中已有的内容,改为如下。
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
return m_brush;
}
存盘,F5运行:
image.png分支二, 不使用Class Wizard
在XXXDlg.h中加入:
class CXXXDlg : public CDialogEx
{
...
protected:
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
...
}
在XXXDlg.cpp中加入:
BEGIN_MESSAGE_MAP(CXXXDlg, CDialogEx)
...
ON_WM_CTLCOLOR()
END_MESSAGE_MAP()
...
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
return m_brush;
}
F5运行,和上面的结果一样。
网友评论