15,979
社区成员
发帖
与我相关
我的任务
分享
switch (uMsg)//处理消息循环
{
case WM_INITDIALOG:/
break;
case WM_ERASEBKGND:
{
OutputDebugString("设置背景");
HDC hdc = (HDC)wParam;
RECT rectClient;
GetClipBox(hdc,&rectClient) ;
FillRect(hdc,&rectClient,(HBRUSH)new CBrush(RGB(255,0,0)));
}
break;
case WM_CLOSE:
DestroyWindow(hwndDlg);
ExitProcess(0);
break;
}
case WM_CTLCOLORSTATIC:
{
//hdcStatic = (HDC) wParam; // handle to display context
HWND hwndStatic = (HWND) lParam; //
if(hwndStatic==hCtrlBlock)
{
//OutputDebugString("WM_CTLCOLORSTATIC\n");
#if 1 //USE_DLG_COLOR
return (BOOL) hbrush1;//pink
#else
return (BOOL) BS_NULL;//do not return 0, otherwise default will be called
#endif
}
return FALSE ;
case WM_ERASEBKGND:
{
CRect rect;
GetClientRect(hwndDlg,&rect);
HBRUSH b=CreateSolidBrush(RGB(255,0,0));
FillRect((HDC)wParam,&rect, b);
// HWND hEDIT;
// hEDIT=::GetDlgItem(hwndDlg,IDC_STATIC);
// GetWindowRect(hEDIT,&rect);
// FillRect((HDC)wParam,&rect, b);
return (int)b;
}
case WM_CTLCOLORSTATIC:
{
HDC hdc = (HDC)wParam;
SetBkColor(hdc,RGB(255,0,0));//这里只能设置静态文本显示文字的背景,没有文字显示的背景还是灰色的
//SetTextColor(hdc,RGB(255,0,0));
return TRUE;
}
case WM_PAINT:
{
//这个消息不会用
break;
}
背景色已经改过来了,但我有个静态文本的控件还是没改完全,目前我这样写只能改变有文字的背景色,但这个控件比较大因为有时显示的文字比较长
目前当文字显示比较少时,剩下的静态文本控件背景还是灰色的,求老司机带路