SetBkMode函式理解

2021-06-08 04:58:36 字數 863 閱讀 7421

輸出的字串時,發現存在背景色,這樣的輸出是破壞背景的。那需要使用什麼方法來保持背景不變,而又能輸出紅色的字串呢?比如按鈕的文字顏色是黑色的,而背景是灰色的。這就需要使用setbkmode函式來設定drawtext函式的輸出方式,顯示裝置共有兩種輸出方式:opaque和transparent。opaque的方式是用當前背景的畫刷的顏色輸出顯示文字的背景,而transparent是使用透明的輸出,也就是文字的背景是不改變的。

函式setbkmode宣告如下:

wingdiapi int   winapi setbkmode(__in hdc hdc, __in int mode);

hdc是當前裝置的控制代碼。

mode是要設定的模式。

函式返回值是前一次設定的模式。

呼叫這個函式的例子如下:

void ccaiwinmsg::ondraw(hdc hdc)

//設定透明背景。

/* 對透明的理解:在窗體或控制項輸出的字串或圖形是有背景色的。而窗體或控制項也是有背景色的。這兩種背景色一般是不同的,

這樣輸出圖形或字串時,兩種背景(窗體或控制項的背景色、符串或圖形的背景色)重疊在一起了,影響美觀,為了不讓這兩種

背景重疊,可以設定背景模式為transparent(透明的),即讓輸出的字串或圖形的背景色不可見。可以這樣理解:把輸出的

字串或圖形的背景色看成是一物體,窗體或控制項看成另一物體,字串或圖形在窗體或控制項前面擋住窗體或控制項了(因為輸出

的字串或圖形是畫在窗體或控制項上的,所以可以這麼模擬),但是透過字串或圖形能看到窗體或控制項。即字串或圖形的背

景色所代表的物體是透明的

*/

SetBkMode函式理解

輸出的字串時,發現存在背景色,這樣的輸出是破壞背景的。那需要使用什麼方法來保持背景不變,而又能輸出紅色的字串呢?比如按鈕的文字顏色是黑色的,而背景是灰色的。這就需要使用setbkmode函式來設定drawtext函式的輸出方式,顯示裝置共有兩種輸出方式 opaque和transparent。opaq...

OpenGl glenable 函式理解

glenable 用於啟用各種功能。功能由引數決定。與gldisable相對應。gldisable是用來關閉的。兩個函式引數取值是一至的。引數說明 void glenable glenum cap glenum 是unsigned int 型別 cap 是乙個取值。由值決定啟用的功能鍵。各種功能請看...

get函式理解

include include include includeusing namespace std int main char next do cin.get next cout 輸入 to be or not to be 輸出 to be or not to be 其實剛開始我很不理解為什麼輸出...