簡體   English   中英

如何設置win32 api c++按鈕背景顏色和文字顏色?

[英]how to set win32 api c++ button background color and text 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;

我在哪里以及如何更改按鈕背景 colors 和文本?

你不能,或者至少你不能簡單地這樣做。 如果您想要一個彩色按鈕,那么您需要設置所有者繪制樣式並自己繪制它。 普通的舊按鈕沒有可定制的顏色。

為此,您可以采取多種方法:

  • 使用位圖作為按鈕
  • 所有者繪制按鈕
  • 處理 NM_CUSTOMDRAW

最簡單的方法就是處理WM_CTLCOLORBTN

您可以按照 Forger 的說明進行操作。 他也為 Windows 編程的其他部分提供了非常好的教程。

在這里查看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM