如何设置win32 api c ++按钮背景颜色和文字颜色?

时间:2011-06-10 06:43:43

标签: c++ winapi button background-color

我在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;

我在哪里以及如何更改按钮背景颜色和文字?

3 个答案:

答案 0 :(得分:2)

你不能,或者至少你不能这么做。如果你想要一个彩色按钮,那么你需要设置所有者绘制样式并自己绘制它。普通的旧按钮没有可自定义的颜色。

答案 1 :(得分:2)

您可以采取以下几种方法:

  • 使用位图作为按钮
  • 所有者提取按钮
  • 处理NM_CUSTOMDRAW

最简单的方法就是处理WM_CTLCOLORBTN

答案 2 :(得分:1)

您可以按照Forger的描述进行操作。他还有一个非常好的教程,可用于其他Windows程序设计。

查看here