vc 設定控制項的背景色

2021-06-18 15:44:57 字數 2088 閱讀 5505

過載onctlcolor函式,這個是必須的 。

設定控制項的背景顏色: 

第一: 

afx_msg hbrush onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor);//在標頭檔案中宣告 

在主檔案中 

第二:begin_message_map(cok1dlg, cdialog) 

//}afx_msg_map 

end_message_map() 

第三:加這個函式 

hbrush ctesdlg::onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor) 

break;      

case ctlcolor_listbox://列表框 

break;           

case ctlcolor_dlg : //對話方塊 

break;  

case ctlcolor_edit : //文字編輯框 

break;      

default:   

break;     

return hbr; 

} } 

控制項參考:  

#define ctlcolor_msgbox         0

#define ctlcolor_edit           1

#define ctlcolor_listbox        2

#define ctlcolor_btn            3

#define ctlcolor_dlg            4

#define ctlcolor_scrollbar      5

#define ctlcolor_static         6

#define ctlcolor_max            7

#if(winver >= 0x0400)

#define color_3ddkshadow        21

#define color_3dlight           22

#define color_infotext          23

#define color_infobk            24

#endif /* winver >= 0x0400 */

#if(winver >= 0x0500)

#define color_hotlight          26

#define color_gradientactivecaption 27

#define color_gradientinactivecaption 28

#if(winver >= 0x0501)

#define color_menuhilight       29

#define color_menubar           30

#endif /* winver >= 0x0501 */

#endif /* winver >= 0x0500 */

#if(winver >= 0x0400)

#define color_desktop           color_background

#define color_3dface            color_btnface

#define color_3dshadow          color_btnshadow

#define color_3dhighlight       color_btnhighlight

#define color_3dhilight         color_btnhighlight

#define color_btnhilight        color_btnhighlight

另外,有的控制項不在上面定義之中,這時要改變就需要獲得控制項的id來改變,具體如下(上面的也可以用下面的這種方法來實現)

首先還是要過載onctlcolor函式

然後if(pwnd->getdlgctrlid()==yourid//你想改變的控制項id)   

return hbr;

這樣就可以實現了 ,很簡單吧!

VC之列表控制項背景色設定

本文簡單介紹下vc程式中list列表控制項的背景設定。首先,新建對話方塊應用程式,然後新增兩個list列表控制項 自定義clistctrl類並重寫列表oncustomdraw函式。在mfc中找不到nm customdraw,只好手動新增了。標頭檔案 protected afx msg private...

EDIT控制項設定字型,背景色

截獲wm ctlcolorstatic訊息 gdiplus bitmap pbitmap gdiplus bitmap cmiuiutils loadimage idb png license bg if pbitmap null lresult onctlcolor uint umsg wpara...

MFC 控制項背景色

由於需要,要講groupbox控制項和文字控制項static的背景色設為一致。onctrlcolor中設定groupbox背景色 if pwnd getdlgctrlid idc g if pwnd getdlgctrlid idc static1 設定後效果 有個白色背景不符合要求 需要新增此句 ...