VC 中改變對話方塊背景顏色

2021-06-02 16:35:33 字數 1802 閱讀 8733

其中函式的第乙個引數指定了背景顏色,第二個引數指定了文字顏色。

下面的例子是將應用程式對話方塊設定為藍色背景和紅色文字,步驟如下:

cexampledlgdlg dlg;

m_pmainwnd = &dlg;

//先於domodal()呼叫,將對話方塊設定為藍色背景、紅色文字

setdialogbkcolor(rgb(0,0,255),rgb(255,0,0));

int nresponse = dlg.domodal();

編譯並執行,此時對話方塊的背景色和文本色已發生了改變。值得注意的是:在呼叫domodal()之前必須先呼叫setdialogbkcolor,且此方法是將改變應用程式中所有的對話方塊顏色,並不能針對某乙個指定的對話方塊。 

方法二:過載onpaint(),即wm_paint訊息。有關**如下(以上例工程為準):

void cexampledlgdlg::onpaint()

if (isiconic())

else

crect rect;

cpaintdc dc(this);

getclientrect(rect);

dc.fillsolidrect(rect,rgb(0,255,0)); //設定為綠色背景

cdialog::onpaint();

方法三:過載onctlcolor (cdc* pdc,cwnd* pwnd, uint nctlcolor),即wm_ctlcolor訊息。具體步驟如下(以上例工程為準):

①在cexampledlgdlg的標頭檔案中,新增一cbrush的成員變數:

class cexampledlgdlg : public cdialog

protected:

cbrush m_brush;

②在oninitdialog()函式中新增如下**:

bool cexampledlgdlg::oninitdialog()

//todo: add extra initialization here

m_brush.createsolidbrush(rgb(0, 255, 0)); //生成一綠色刷子

③利用classwizard過載onctlcolor(…),即wm_ctlcolor訊息:

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

**   這裡不必編寫任何**!

**下行**要注釋掉

**   hbrush   hbr   =   cdialog::onctlcolor(pdc,   pwnd,   nctlcolor);

return   m_brush;//返加綠色刷子

方法四:還是過載onctlcolor(cdc*   pdc,   cwnd*   pwnd,   uint   nctlcolor), 即wm_ctlcolor訊息。具體步驟如下(以上例工程為準):

步驟①、②同上方法三中的步驟①、②。

步驟③利用classwizard過載onctlcolor(…)(即wm_ctlcolor訊息)時則有些不同:

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

hbrush hbr = cdialog::onctlcolor(pdc, pwnd, ctlcolor);

//在這加一條是否為對話方塊的判斷語句

if(nctlcolor==ctlcolor_dlg)

return m_brush; //返加綠色刷子

return hbr;

mfc 改變對話方塊背景顏色

其中函式的第乙個引數指定了背景顏色,第二個引數指定了文字顏色。下面的例子是將應用程式對話方塊設定為藍色背景和紅色文字,步驟如下 新建乙個基於dialog的mfc initinstance 中新增如下 bool initinstance 編譯並執行,此時對話方塊的背景色和文本色已發生了改變。值得注意的...

VC6 0中如何改變對話方塊的背景顏色

方法二 過載onpaint 即wm paint 訊息。有關 如下 以上例工程為準 void cexampledlgdlg onpaint 方法三 過載onctlcolor cdc pdc,cwnd pwnd,uint nctlcolor 即wm ctlcolor 訊息。具體步驟如下 以上例工程為準 ...

如何改變對話方塊的背景顏色

1 如何改變對話方塊的背景顏色 2 如何在onctlcolor裡使對話方塊透明 以及如何改變對話方塊外觀 方法一 hbrush cmydlg onctlcolor cdc pdc,cwnd pwnd,uint nctlcolor 方法二 我們可以改變對話方塊的背景顏色,或對話方塊中的控制項顏色以使得...