ChooseColor函數

創建一個用戶選擇的對話框。

COLORREF DoSelectColour(HWND hwnd)
{
    CHOOSECOLOR cc = {sizeof(CHOOSECOLOR)};

    cc.Flags = CC_RGBINIT | CC_FULLOPEN | CC_ANYCOLOR;
    cc.hwndOwner = hwnd;
    cc.rgbResult = g_rgbBackground;
    cc.lpCustColors = g_rgbCustom;

    if(ChooseColor(&cc))
    {
        g_rgbBackground = cc.rgbResult;
    }
	return cc.rgbResult;
}
成員
lStructSize
指定結構的長度(字節)
hwndOwner
擁有對話框的窗口的句柄。該成員可以是任意有效的窗口句柄,或在對話框沒有所有者時,可爲NULL
hInstance
如果Flag成員設置了CC_ENABLETEMPLATEHANDLE標識符時,該成員是一個包含了對話框模板的內存對象的句柄。如果 CC_ENABLETEMPLATE 標識符被設置時,該成員是一個包含了對話框的模塊句柄。如果上述兩個標識符都未被設置,則該成員被忽略。
rgbResult
如果CC_RGBINIT標識符被設置時,該成員指定了對話框打開時默認的選擇顏色。如果指定的顏色值不在有效的範圍內,系統會自動選擇最近的顏色值。如果該成員爲0或CC_RGBINIT未被設置,初始顏色是黑色。如果用戶單擊OK按鈕,該成員指定了用戶選擇的顏色。
lpCustColors
指向一個包含16個值的數組,該數組包含了對話框中自定義顏色的紅、綠、藍(RGB)值。如果用戶修改這些顏色,系統將用新的顏色值更新這個數組。如果要在多個ChooseColor函數中保存這個新的數組,你應該爲該數組分配靜態內存空間。
Flags
一個可以讓你初始化顏色對話框的位集。當對話框返回時,它用來這些標識符來標識用戶的輸入。該成員可以爲下列標識符的任意組合。
CC_ANYCOLOR
對話框顯示所有可用的基於基本顏色的顏色。
CC_ENABLEHOOK
激活由lpfnHook成員指定的鉤子程序。該標識僅用於初始化對話框時。
CC_ENABLETEMPLATE
表示利用由hInstance 和 lpTemplateName 成員指定的對話框模板。該標識符僅用於初始化對話框。
CC_ENABLETEMPLATEHANDLE
表示hInstance成員標識一個包含了預加載的對話框模板的數據塊。如果該標識被指定,系統會忽略 lpTemplateName 成員。該標識符僅用於初始化對話框。
CC_FULLOPEN
讓對話框顯示額外的控件以使用戶創建自定義的顏色。如果該標識未設置,用戶必須點擊【自定義顏色】按鈕才能顯示自定顏色控件。
CC_PREVENTFULLOPEN
使自定義顏色按鈕失效。
CC_RGBINIT
讓對話框默認使用由rgbResult成員指定的顏色
CC_SHOWHELP
讓對話框顯示幫助按鈕。hwndOwner成員必須在用戶點擊【幫助】按鈕時發送HELPMSGSTRING消息的窗口
CC_SOLIDCOLOR
讓對話框僅顯示基本顏色組成的純色。
lCustData
指定應用程序自定義的數據,該數據會被系統發送給鉤子程序。當系統的發送WM_INITDIALOG消息給鉤子程序時,消息的lParam參數是一個指向CHOOSECOLOR結構的指針。鉤子程序可以利用該指針獲得該成員的值。
lpfnHook
指向CCHookProc鉤子程序的指針,該鉤子可以處理髮送給對話框的消息。該成員只在CC_ENABLEHOOK標識被設定的情況下才可用,否則該成員會被忽略。
lpTemplateName
指向一個NULL結尾的字符串,該字符串是對話框模板資源的名字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章