Windows API一日一練(23)SetTextColor函式
阿新 • • 發佈:2019-02-12
世界是多姿多彩的,色彩是不可以缺少的。在軟體開發裡,不同的字元顏色往往用來區分不同的資料型別,比如嚴重的警告,就是使用紅色,當然這也是跟交通裡紅綠燈是一樣的道理。最根本的原因,還是人類對自然的選擇。畢竟人眼對不同的顏色作出了不同的選擇。由於紅色光波穿透性比較好,所以就形成以紅色來警告的訊號。說來也怪,人類的身體不管是什麼顏色,流著的血一定是紅色的。在軟體開發裡,要把輸出字元的顏色符合現在人位的習慣,不要背離它,否則就不是“以人為本”的科學理念,如果開發出不是“以人為本”的軟體是沒有客戶使用的。在Windows裡,微軟是選擇以藍色為基調的配色方案,深藍色的XP介面比WIN2000介面,讓人感覺到耳目一新的感覺,深深地把年輕人吸引住了。看到國內防毒軟體,很多是選擇綠色為基調,其實就是綠色也就是代表了安全的選擇。可見,在軟體領域裡顏色是非常重要的,面對不同的客戶要選擇不同的顏色。比如 SAP軟體,選擇是黃色為基調,比較有特色。
函式SetTextColor宣告如下:
WINGDIAPI COLORREF WINAPI SetTextColor(__in HDC hdc, __in COLORREF color);
hdc是當前裝置的控制代碼。
color是設定當前裝置字元輸出顏色。
呼叫這個函式的例子如下:
#001 //
#002 //介面顯示輸出.
#003 //
#004 //蔡軍生 2007/08/13 QQ:9073204 深圳
#005 //
#006 void CCaiWinMsg::OnDraw(HDC hDC)
#007 {
#008 //
#009 std::wstring strShow(_T("C++視窗類的實現,2007-08-13"));
#010 TextOut(hDC,10,10,strShow.c_str(),(int)strShow.length());
#011
#012 //設定輸出字串的顏色.
#013 COLORREF crOld = SetTextColor(hDC,RGB(255,0,0));
#014 TextOut(hDC,10,30,strShow.c_str(),(int)strShow.length());
#015
#016 SetTextColor(hDC,RGB(0,255,0));
#017 TextOut(hDC,10,50,strShow.c_str(),(int)strShow.length());
#018
#019 SetTextColor(hDC,RGB(0,0,255));
#020 TextOut(hDC,10,70,strShow.c_str(),(int)strShow.length());
#021
#022 //
#023 SetTextColor(hDC,crOld);
#024 }
第13行設定字元的顏色為紅色。
第16行設定字元的顏色為綠色。
第19行設定字元的顏色為藍色。
第23行恢復原來的顏色,這個一定要記得做,否則後面顯示會出錯。