如何设置win32 api c++按钮背景颜色和文本颜色?
Posted
技术标签:
【中文标题】如何设置win32 api c++按钮背景颜色和文本颜色?【英文标题】:how to set win32 api c++ button background color and text color? 【发布时间】:2011-09-12 06:29:03 【问题描述】:我在 win32 应用程序中使用简单的按钮,我喜欢更改它的颜色和文本 但我无法从谷歌的所有搜索中找到如何做到这一点。 我有这个代表按钮的代码: 这是在 rc 文件中:
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG1 DIALOG 0, 0, 273, 209
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Win32 demo"
FONT 8, "Ms Shell Dlg"
DEFPUSHBUTTON "My Button1 ", IDOK, 59, 176, 69, 14
PUSHBUTTON "Log Off", IDC_BUTTON1, 155, 175, 54, 14
在主 cpp 文件中,我只触发简单的 Massegebox 警报
case WM_COMMAND:
switch(LOWORD(wParam))
case IDOK:
MessageBox(NULL, L"IDOK button pressed!", L"Pinky says...", MB_OK | MB_ICONEXCLAMATION);
break;
case IDC_BUTTON1:
MessageBox(NULL, L"IDC_BUTTON1 button pressed!",L"Pinky says...", MB_OK | MB_ICONEXCLAMATION);
break;
break;
break;
我在哪里以及如何更改按钮的背景颜色和文本?
【问题讨论】:
【参考方案1】:你不能,或者至少你不能简单地这样做。如果您想要一个彩色按钮,那么您需要设置所有者绘制样式并自己绘制它。普通的旧按钮没有可自定义的颜色。
【讨论】:
感谢重播,能否请您给我指点初学者教程之王? 你可以开始here。【参考方案2】:您可以采取以下几种方法:
使用位图作为您的按钮 Ownerdraw 按钮 处理 NM_CUSTOMDRAW最简单的方法就是处理WM_CTLCOLORBTN。
【讨论】:
【参考方案3】:您可以按照 Forger 的说明进行操作。他还为其他一些 Windows 编程提供了非常好的教程。
看看here
【讨论】:
该教程描述了处理 WM_CTLCOLORSTATIC。他需要处理 WM_CTLCOLORBTN。 确实如此,最后描述了所有其他控件的情况!描述了所有其他控件的情况。因未向他提供 WM_CTLCOLORBTN 的链接而被指控有罪。以上是关于如何设置win32 api c++按钮背景颜色和文本颜色?的主要内容,如果未能解决你的问题,请参考以下文章
按下回车按钮时如何使用 C++ Win32 API 调用按钮?