VC中对话框背景颜色设置

1.怎么设置非用户区的颜色?2.如果设置用户区为不同颜色,比如有两个picture控件,一个的背景设置成红色,另一个设置成绿色。3.如果我只在对话框中load一个bitm... 1.怎么设置非用户区的颜色?
2.如果设置用户区为不同颜色,比如有两个picture控件,一个的背景设置成红色,另一个设置成绿色。
3.如果我只在对话框中load一个bitmap,但是这个bitmap没有占完整个用户区,怎么显示这个bitmap,而非用户区和其他的用户区则隐藏?
能提供一份代码最好。
展开
 我来答
原帅心甜02
2008-05-19 · TA获得超过418个赞
知道小有建树答主
回答量:419
采纳率:0%
帮助的人:285万
展开全部
1.怎么设置非用户区的颜色?
在需要设置的对话框类中添加WM_CTLCOLOR消息响应,然后在这个函数中return那里注释掉默认的,return你的话刷就可以了!
2.如果设置用户区为不同颜色,比如有两个picture控件,一个的背景设置成红色,另一个设置成绿色。
OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
这个函数中有个CWnd类型的指针,用这个指针调用GetDlgCtrlID()函数和当前控件ID做比较!
例子如下:

HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

// TODO: Return a different brush if the default is not desired
if(pWnd->GetDlgCtrlID()==IDC_STATIC)
{
return m_mybrush;
}
return m_brush;
// return hbr;
}

3.如果我只在对话框中load一个bitmap,但是这个bitmap没有占完整个用户区,怎么显示这个bitmap,而非用户区和其他的用户区则隐藏?
有两种方法!
第一就是定义一个Rect在里面填充
或者还是在
OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
函数中返回当前需要的位图!
可以现定义一个位图的对象和话刷的对象
CBitmap m_bitmap;
CBrush m_Cbrush;
先m_bitmap.LoadBitmap(IDB_BITMAP1);
然后用m_Cbrush创建一个位图话刷
m_Cbrush.CreatePatternBrush(&m_bitmap);//需要的是一个位图指针!
然后在对话框上面画一个picture控件
用前面说的GetDlgCtrlID()函数给这个picture控件填充颜色就可以了!
zltpc007
2008-05-20 · TA获得超过420个赞
知道小有建树答主
回答量:446
采纳率:0%
帮助的人:329万
展开全部
BEGIN_MESSAGE_MAP(CYourDlg, CDialog)
ON_WM_CTLCOLOR()//添加到消息映射
END_MESSAGE_MAP()

HBRUSH OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
COLORREF backColor = RGB(216, 231, 252); //office 2003背景色
pDC->SetBkMode(TRANSPARENT); //设置控件背景透明

// 判断下是不是你要改的控件ID
if( pWnd->GetDlgCtrlID() == IDC_C_CPERSON || pWnd->GetDlgCtrlID() == IDC_C_APERSON )
{
pDC->SetBkColor(RGB(153, 255, 204));
}

return CreateSolidBrush(backColor); //创建背景刷子
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
6908270270
2008-05-19 · TA获得超过3427个赞
知道小有建树答主
回答量:1988
采纳率:0%
帮助的人:695万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kingstarer
2008-05-19 · TA获得超过584个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:518万
展开全部
学习了

ps:CTLCOLOR怎么设置非系统区的颜色啊?LS可否详细解释一下?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式