天天看點

win32如何調用系統顔色對話框win32如何調用系統顔色對話框

win32如何調用系統顔色對話框

  • 首先要包含commdlg.h頭檔案,這個是通用對話框的頭檔案,包括檔案對話框,顔色對話框,列印對話框等。
  • 然後再聲明一個CHOOSECOLOR類型的變量,聲明一個COLORREF類型的變量rgbLineColor,用來存儲使用者選擇的顔色。

    static CHOOSECOLOR stChooseColor; static COLORREF rgbLineColor;

    (其中CHOOSECOLOR是一個結構體,包括了用ChooseColor函數來初始化顔色對話框的一些資訊,可以從MSDN中查到這個結構體如下:

    typedef struct { DWORD lStructSize; HWND hwndOwner; HWND hInstance; COLORREF rgbResult; COLORREF* lpCustColors; DWORD Flags; LPARAM lCustData; LPCCHOOKPROC lpfnHook; LPCTSTR lpTemplateName; } CHOOSECOLOR;

  • 然後再對stChooseColor的内容進行指派
`stChooseColor.lStructSize    = sizeof(CHOOSECOLOR) ;
            stChooseColor.hwndOwner      = hWnd ;
            stChooseColor.rgbResult      = rgbLineColor ;
            stChooseColor.lpCustColors   = (LPDWORD) dwCustColors ;
            stChooseColor.Flags          = CC_RGBINIT ;
            stChooseColor.lCustData      =  ;
            stChooseColor.lpfnHook       = NULL ;
            stChooseColor.lpTemplateName = NULL ;`  
           
  • 最後用ChooseColor函數來建立一個顔色對話框供使用者選擇顔色
if (ChooseColor(&stChooseColor))
{
    rgbLineColor = stChooseColor.rgbResult;
}
           
  • 最後的效果如下所示:
    win32如何調用系統顔色對話框win32如何調用系統顔色對話框
    (未選擇顔色)
    win32如何調用系統顔色對話框win32如何調用系統顔色對話框
    (選擇顔色)
    win32如何調用系統顔色對話框win32如何調用系統顔色對話框
    (效果)