MFC对话框设置背景色及透明度
2013-12-04 20:39
309 查看
首先建立一个基于对话框的MFC应用程序工程testDlg,对话框类是CtestDlgDlg,接下来
一,定义并创建画刷
[cpp] view
plaincopy
// 在CtestDlgDlg类中添加成员变量
CBrush m_bkBrush;
// 在OnInitDialog()中创建一把黄色的背景刷子
m_bkBrush.CreateSolidBrush(RGB(255,255,0));
二,添加WM_CTLCOLOR响应消息函数,点击对话框类CtestDlgDlg属性-->消息响应-->WM_CTLCOLOR-->自动生成代码
[cpp] view
plaincopy
HBRUSH CtestDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_DLG) // 判断是否是对话框
{
return m_bkBrush; // 返回刚才创建的背景刷子
}
//TODO:如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
三,在OnInitDialog()中调用SetLayeredWindowAttributes设置透明度
[cpp] view
plaincopy
::SetWindowLong( m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
::SetLayeredWindowAttributes( m_hWnd, 0, 120, LWA_ALPHA); // 120是透明度,范围是0~255
以上代码均用VS2008测试过
一,定义并创建画刷
[cpp] view
plaincopy
// 在CtestDlgDlg类中添加成员变量
CBrush m_bkBrush;
// 在OnInitDialog()中创建一把黄色的背景刷子
m_bkBrush.CreateSolidBrush(RGB(255,255,0));
二,添加WM_CTLCOLOR响应消息函数,点击对话框类CtestDlgDlg属性-->消息响应-->WM_CTLCOLOR-->自动生成代码
[cpp] view
plaincopy
HBRUSH CtestDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_DLG) // 判断是否是对话框
{
return m_bkBrush; // 返回刚才创建的背景刷子
}
//TODO:如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
三,在OnInitDialog()中调用SetLayeredWindowAttributes设置透明度
[cpp] view
plaincopy
::SetWindowLong( m_hWnd, GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
::SetLayeredWindowAttributes( m_hWnd, 0, 120, LWA_ALPHA); // 120是透明度,范围是0~255
以上代码均用VS2008测试过
相关文章推荐
- MFC对话框设置背景色及透明度(转…
- MFC对话框设置背景色及透明度
- MFC对话框设置背景色及透明度
- MFC对话框设置背景色及透明度
- 如何设置MFC对话框背景色透明
- MFC设置对话框背景色及控件颜色
- MFC对话框背景色的设置
- VC MFC对话框中按钮背景色以及大小设置
- MFC点击按钮,弹出进度条并且自动滚动以及进度条对话框背景色、按钮颜色设置
- MFC对话框背景色的设置
- 对话框背景色的设置
- MFC设置对话框、静态文本框、编辑框的背景及文本
- MFC设置对话框大小
- MFC中设置背景色,背景图片和背景音乐的方法【学习笔记1】
- C++ MFC / VS2013 之八 (对话框:设置对话框控件的Tab顺序)
- 在MFC中设置整个对话框字体
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC设置对话框的焦点
- MFC 文件保存对话框的设置的那些秘密
- MFC 对话框标题动态设置