vc 大家看看我想给对话框添加背景该怎么做

我想通过重载窗体的WM_CTLCOLOR消息来处理HBRUSHCMyDlg::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){HB... 我想通过重载窗体的WM_CTLCOLOR消息来处理
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

//TODO: Change any attributes of the DC here

pDC->SetBkMode(TRANSPARENT);
switch(nCtlColor)
{
case CTLCOLOR_DLG: //设置对话框的背景色
//这里加什么代码
case CTLCOLOR_BTN://设置窗体中的控件的背景色
//这里加什么代码

}

// TODO: Return a different brush if the default is not desired
return hbr;

}
我又改进 : pDC->SetTextColor(RGB(0, 0, 255)); //设置文本颜色
pDC->SetBkMode(TRANSPARENT);
switch(nCtlColor)
{
case CTLCOLOR_DLG:
{
static CBrush mBrush(RGB(255, 0, 0));
return (HBRUSH)mBrush ;
}

case CTLCOLOR_BTN://设置窗体中的控件的背景色
{
static CBrush mBrush(RGB(0, 0, 255));
return (HBRUSH)mBrush ;
}

}

// TODO: Return a different brush if the default is not desired
return hbr;
} 加了个static界面有变化了,但是中间文字却没有背景,我已经用 pDC->SetBkMode(TRANSPARENT); 这是为什么呢
上面的前辈你帮我看看吧。还有改变控件颜色的代码不正确,要怎么更正。还请前辈赐教。
展开
 我来答
178752468
2009-04-07 · TA获得超过291个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:396万
展开全部
case CTLCOLOR_STATIC: //static控件
{
pDC->SetBkMode(TRANSPARENT); //字体透明
pDC->SetTextColor(RGB(255,0,0)); //字体颜色
HBRUSH B =(HBRUSH)GetStockObject(NULL_BRUSH); //透明画刷
return B;
}

对于修改控件颜色等风格建议做个派生类,再子类化到对话框会灵活些
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式