1. 程式人生 > >Windows API一日一練(23)SetTextColor函式

Windows API一日一練(23)SetTextColor函式

世界是多姿多彩的,色彩是不可以缺少的。在軟體開發裡,不同的字元顏色往往用來區分不同的資料型別,比如嚴重的警告,就是使用紅色,當然這也是跟交通裡紅綠燈是一樣的道理。最根本的原因,還是人類對自然的選擇。畢竟人眼對不同的顏色作出了不同的選擇。由於紅色光波穿透性比較好,所以就形成以紅色來警告的訊號。說來也怪,人類的身體不管是什麼顏色,流著的血一定是紅色的。在軟體開發裡,要把輸出字元的顏色符合現在人位的習慣,不要背離它,否則就不是“以人為本”的科學理念,如果開發出不是“以人為本”的軟體是沒有客戶使用的。在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行恢復原來的顏色,這個一定要記得做,否則後面顯示會出錯。