共用方式為


SetSystemPaletteUse 函式 (wingdi.h)

SetSystemPaletteUse函式可讓應用程式指定系統調色盤是否包含 2 或 20 個靜態色彩。 預設系統調色盤包含 20 種靜態色彩。 (當應用程式實現邏輯調色盤時,無法變更靜態色彩。)

語法

UINT SetSystemPaletteUse(
  [in] HDC  hdc,
  [in] UINT use
);

參數

[in] hdc

裝置內容的控制碼。 此裝置內容必須參考支援調色盤的裝置。

[in] use

系統調色盤的新用法。 此參數可以是下列其中一個值。

意義
SYSPAL_NOSTATIC
系統調色盤包含兩種靜態色彩, (黑白) 。
SYSPAL_NOSTATIC256
系統調色盤不包含靜態色彩。
SYSPAL_STATIC
系統調色盤包含靜態色彩,當應用程式實現其邏輯調色盤時,將不會變更。

傳回值

如果函式成功,則傳回值為先前的系統選擇區。 它可以是SYSPAL_NOSTATIC、SYSPAL_NOSTATIC256或SYSPAL_STATIC。

如果函式失敗,傳回值會SYSPAL_ERROR。

備註

應用程式可以呼叫 GetDeviceCaps 函式並指定 RASTERCAPS 常數,來判斷裝置是否支援調色盤作業。

當應用程式視窗移至前景並設定SYSPAL_NOSTATIC值時,應用程式必須呼叫 GetSysColor 函式來儲存目前的系統色彩設定。 它也必須呼叫 SetSysColors ,只使用黑白來設定合理的值。 當應用程式返回背景或終止時,必須還原先前的系統色彩。

如果函式傳回SYSPAL_ERROR,則指定的裝置內容無效或不支援調色盤。

應用程式只有在視窗最大化且具有輸入焦點時,才必須呼叫此函式。

如果應用程式呼叫 SetSystemPaletteUse 並將 uUsage 設定為 SYSPAL_NOSTATIC,系統會繼續在系統調色盤中分別針對純白色和純黑色設定兩個專案。

呼叫此函式並將 uUsage 設定為 SYSPAL_NOSTATIC 之後,應用程式必須採取下列步驟:

  1. 瞭解邏輯調色盤。
  2. 呼叫 GetSysColor 函式以儲存目前的系統色彩設定。
  3. 呼叫 SetSysColors 函 式,以使用黑白將系統色彩設定為合理的值。 例如,相鄰或重迭的專案 (,例如視窗框架和框線) 應該分別設定為黑白。
  4. WM_SYSCOLORCHANGE 訊息傳送至其他最上層視窗,以允許重新繪製新的系統色彩。
當應用程式的視窗失去焦點或關閉時,應用程式必須執行下列步驟:
  1. 呼叫 SetSystemPaletteUse ,並將 uUsage 參數設定為 SYSPAL_STATIC。
  2. 瞭解邏輯調色盤。
  3. 將系統色彩還原為其先前的值。
  4. 傳送 WM_SYSCOLORCHANGE 訊息。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wingdi.h (包含 Windows.h)
程式庫 Gdi32.lib
Dll Gdi32.dll

另請參閱

色彩函式

色彩概觀

GetDeviceCaps

GetSysColor

GetSystemPaletteUse

SetSysColors