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) 表达式究竟是什么意思。