函式功能
該函式允許一個套用指定系統調色板包含2個或20個靜態顏色。預設的系統調色板包含20個靜態顏色(為一個套用映射一個邏輯調色板時,靜態顏色不發生變化)。函式原型
UINT SetSystemPaletteUse(HDC hdc, UINT uUsage);主要參數
hdc:設備環境句柄,該設備環境必須引用一個支持彩色調色板的設備。uUsage:指定系統調色板的一個新的使用,該值可以是如下幾種:
SYSPAL_NOSTATIC:系統調色板包含個靜態顏色(黑色和白色)。
SYSPAL_NOSTATIC 256:Windows NT 5.0或以後版本,系統調色板不包含靜態顏色。
SYSPAL_STATIC:系統調色板包含靜態顏色,當一個套用映射它的邏輯調色板時這些靜態顏色不發生變化。
返回值:如果成功,返回值是前一個系統調色板,它可以是SYSPAL_NOSTATIC。SYSPAL_NOSTATIC 256或SYSPAL_STATIC;如果失敗,返回值是SYSPAL_ERROR。
Windows NT:若想獲得更多錯誤信息,請調用GetLastError函式。
注釋:通過調用GetDeviceCaps函式和指定RASTERCAPS常量,一個套用可以確定一個設備是否支持調色板操作。
當一個應用程式視窗移到前台,並且SYSPAL_NOSTATIC值已設定時,該套用必須調用GetSysColor函式來儲存當前的系統顏色設值,它必須同時調用setsysColor函式僅使用黑色和白色來設定合理的值。當該套用回到後台或被中斷,則以前的系統顏色必須被恢復。
如果該函式返回SYSPAL_ERROR,則指定的設備環境無效,或者不支持彩色調色板。當一個套用的視窗最大化並且有輸入焦點時,必須調用該函式。當一個套用調用該函式並且uUsage設定為SYSPAL_NOSTATIC之後,它必須遵循如下的步驟:映射邏輯調色板。調用GetSysColor函式保存當前系統顏色設定。調用SetsysColor函式使用白色和黑色設定系統顏色為合理值。例如,相鄰或重疊的項目(如視窗框和邊界)應分別設定為黑色和白色。
傳送WM_SYSCOLORCHANGE訊息到其他的頂層視窗,讓它們使用新的系統顏色刷新螢幕。
當該套用視窗關閉或失去焦點時,它必須做如下事情:
調用SetsystemrPalette函式並把uUsage參數設定為SYSPAL_STATIC,映射邏輯調色板。
把系統顏色恢復為以前的值,傳送WM_SYSColoRCHANGE訊息。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭檔案:wingdi.h;庫檔案:gdi32.lib。