gpt4 book ai didi

c++ - 更改对话框的背景颜色 win32api

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:18:58 26 4
gpt4 key购买 nike

我正在尝试更改对话框的背景颜色(win 7、vs2010、c++)。

我试图捕获 WM_CTLCOLORWM_ERASEBKGND 并更改颜色。我设法只捕获了 WM_ERASEBKGND 消息,但通过这种方式,我在 Debug模式下设法看到我更改了窗口的背景颜色,但是当对话框完成上传自身时,颜色就会溢出由 DialogBox 的默认灰色。

我正在使用 CreateDialogParam 函数创建 DialogBox。

case WM_ERASEBKGND:
{
HBRUSH brush;
RECT rect;
brush = CreateSolidBrush(RGB(255,0,0));
SelectObject((HDC)wParam,brush);
GetClientRect(m_hDlg,&rect)//m_hDlg is HWND type
Rectangle((HDC)wParam,rect.left,rect.top,rect.right,rect.bottom);
break;
}

我尝试使用函数:

SetBkMode((HDC)wParam,TRANSPARENTE);

但这并没有帮助。

我该怎么办?

最佳答案

您需要处理 WM_CTLCOLORDLG。你应该返回一个刷柄。例如,要使背景变白:

case WM_CTLCOLORDLG:
return (INT_PTR)GetStockObject(WHITE_BRUSH);

关于c++ - 更改对话框的背景颜色 win32api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20519533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com