有关HBRUSH的疑问。
MFC AppWizard为我们生成的应用程序中,视图类的PreCreateWindow()被自动添加了如下代码:
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_BTNFACE+1), NULL);
return TRUE;
}
其中:
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, ::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);
为视图窗口注册了窗口类。参数HBRUSH(COLOR_WINDOW+1)为视图窗口客户区指定了背景刷子。但HBRUSH(COLOR_WINDOW+1)表达式是什么意思呢?
如果是CBrush(RGB(255, 255, 255))就很好理解了:在栈中构造一个白色的刷子对象,并把它作为实参传递给AfxRegisterWndClass(),以决定视图窗口客户区的背景颜色。但此例中的HBRUSH(COLOR_WINDOW+1)是什么意思呢?如果说是把COLOR_WINDOW+1的值强制类型转换为HBRUSH的话,那正确的表达式应为:(HBRUSH)(COLOR_WINDOW+1)。
迷糊了,迷糊了,请前辈们指点迷津。(HBRUSH)(COLOR_WINDOW+1) 表达式究竟是什么意思。
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_BTNFACE+1), NULL);
return TRUE;
}
其中:
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, ::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);
为视图窗口注册了窗口类。参数HBRUSH(COLOR_WINDOW+1)为视图窗口客户区指定了背景刷子。但HBRUSH(COLOR_WINDOW+1)表达式是什么意思呢?
如果是CBrush(RGB(255, 255, 255))就很好理解了:在栈中构造一个白色的刷子对象,并把它作为实参传递给AfxRegisterWndClass(),以决定视图窗口客户区的背景颜色。但此例中的HBRUSH(COLOR_WINDOW+1)是什么意思呢?如果说是把COLOR_WINDOW+1的值强制类型转换为HBRUSH的话,那正确的表达式应为:(HBRUSH)(COLOR_WINDOW+1)。
迷糊了,迷糊了,请前辈们指点迷津。(HBRUSH)(COLOR_WINDOW+1) 表达式究竟是什么意思。
...全文
相关推荐
VC++ 小实例 填充区域图像
如果你对某些细节或者更高级的特性有疑问,如渐变填充、图案填充等,可以进一步研究相关的API和文档。
windows 作业
hdc = BeginPaint(hwnd,&ps);::SelectObject(hdc,hPen);switch(choice){case 1:::SelectObject(hdc,hBrush1
C++API基本绘图程序
= (HBRUSH)GetStockObject(DKGRAY_BRUSH);SelectObject(hDC, hBrush);SelectObject(hDC, hPen);RoundRect(hDC
当我打开视觉样式时,通用控件没有正确地用WM_CTLCOLORSTATIC处理程序绘制
hbrBkgnd变量是一个静态HBRUSH变量,已初始化为NULL,并
画刷的用法
#### HBRUSH概述`HBRUSH`是Windows API中的一个句柄类型,用于表示画刷对象。画刷对象可以定义颜色、图案和纹理,用于填充窗口或控件中的矩形、圆等形状。


