靜態類別

在CreateWindow函式中指定視窗類別為「static」,您就可以建立靜態文字的子視窗控制項。這些子視窗非常「文靜」。它既不接收滑鼠或鍵盤輸入,也不向父視窗傳送WM_COMMAND訊息。靜態類別也包括了三種文字樣式:SS_LEFT、SS_RIGHT和SS_CENTER。它們建立左對齊、置右對齊和居中文字。靜態存儲類別的變數簡稱靜態變數,靜態存儲類別的函式稱為靜態函式。

簡介

在CreateWindow函式中指定視窗類別為「static」,您就可以建立靜態文字的子視窗控制項。這些子視窗非常「文靜」。它既不接收滑鼠或鍵盤輸入,也不向父視窗傳送WM_COMMAND訊息。
當您在靜態子視窗上移動或者按下滑鼠時,這個子視窗將攔截WM_NCHITTEST訊息並將HTTRANSPARENT的值傳回給Windows,這將使Windows向其下層視窗,通常是它的父視窗,傳送相同的WM_NCHITTEST訊息。父視窗常常將該訊息傳遞給DefWindowProc,在這裡,它被轉換為顯示區域的滑鼠訊息。
前六個靜態視窗樣式只簡單地在子視窗的顯示區域內畫一個矩形或者框線。在下表的上部,「RECT」靜態樣式(左列)是填入圖樣的矩形樣式;三個「FRAME」樣式(右列)是沒有填入圖樣的矩形輪廓
SS_BLACKRECT
SS_GRAYRECT
SS_WHITERECT
SS_BLACKFRAME
SS_GRAYFRAME
SS_WHITEFRAME
「BLACK」、「GRAY」、「WHITE」並不意味著黑、灰和白色,這些顏色是由系統顏色決定的,如表9-4所示。
表9-4
靜態控制項系統顏色
BLACK COLOR_3DDKSHADOW
GRAY COLOR_BTNSHADOW
WHITE COLOR_BTNHIGHLIGHT
對這些樣式,CreateWindow呼叫中的視窗文字欄位被忽略。矩形的左上角開始於x位置坐標和y位置坐標,這些座標都相對於父視窗。您也可以使用SS_ETCHEDHORZ、SS_ETCHEDVERT或者SS_ETCHEDFRAME ,採用灰色和白色建立一個形似陰影的框線。

三種文字樣式

靜態類別也包括了三種文字樣式:SS_LEFTSS_RIGHTSS_CENTER。它們建立左對齊、置右對齊和居中文字。文字在CreateWindow呼叫的視窗文字參數中給出,並且在以後可以用SetWindowText來改變它。當靜態控制項的視窗訊息處理程式顯示文字時,它使用DrawText函式以及DT_WORDBREAK、DT_NOCLIP和DT_EXPANDTABS參數。文字在子視窗的矩形內可以按文字進行換行。
這三種文字樣式子視窗的背景通常為COLOR_BTNFACE,而文字本身是COLOR_WINDOWTEXT。在攔截WM_CTLCOLORSTATIC訊息時,您可以通過呼叫SetTextColor來改變文字顏色,通過SetBkColor來改變背景顏色,並傳回背景畫刷代號。後面的COLORS1程式展示了這一點。

相關詞條

相關搜尋

熱門詞條

聯絡我們