как установить цвет фона кнопки win32 api c ++ и цвет текста? - PullRequest
5 голосов
/ 10 июня 2011

Я использую простую кнопку в приложении Win32, и мне нравится менять ее цвет и текст, но я не могу найти из всех поисков в Google, как это сделать.у меня есть этот код, который представляет кнопку: это в файле 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 ]

2 голосов
/ 10 июня 2011

Есть несколько подходов, которые вы можете использовать для этого:

  • Использование растровых изображений в качестве кнопок
  • Владелец кнопки
  • Обработка NM_CUSTOMDRAW

Самый простой способ - просто обработать WM_CTLCOLORBTN .

2 голосов
/ 10 июня 2011

Вы не можете, или, по крайней мере, вы не можете сделать это просто. Если вам нужна цветная кнопка, вам нужно установить стиль рисования владельцем и нарисовать его самостоятельно. Простые старые кнопки не имеют настраиваемых цветов.

1 голос
/ 10 июня 2011

Вы можете сделать это, как описано подделкой.У него есть очень хорошее руководство для других частей программирования Windows.

Проверьте здесь

...