MFC设置控件背景透明
程序员文章站
2022-03-26 18:34:12
...
首先要添加OnCtlColor函数
1.该函数在VC++中的添加方法为:快捷键Ctrl+W或右击空白处打开ClassWizard对话框(也可以菜单->view->ClassWizard),在Message Maps里的Messages框中找到OnCtlColor,点击Add Function添加
在VS 类视图中右键点击你的DLG类点击属性,在上面找到消息图标,滑动,找到OnCtlColor函数添加
2.第二种方法是自己手动添加
- 头文件中添加函数声明
- cpp文件中添加消息映射和响应函数
// 1. 在对话框的头文件中加入
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
// 2. 在对话框的cpp文件中加入
BEGIN_MESSAGE_MAP(CtransparentDlg, CDialog)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//该例子是设置静态文本透明
HBRUSH CtransparentDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hBrush = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_STATIC) //静态文本
{
pDC->SetBkMode(TRANSPARENT); //设置控件透明
return (HBRUSH)::GetStockObject(NULL_BRUSH); //记住一定要有这句
}
return hBrush;
}
- OnCtlColor可设置的控件类型:
- CTLCOLOR_BTN Button control
- CTLCOLOR_DLG Dialog box
- CTLCOLOR_EDIT Edit control
- CTLCOLOR_LISTBOX List-box control
- CTLCOLOR_MSGBOX Message box
- CTLCOLOR_SCROLLBAR Scroll-bar control
- CTLCOLOR_STATIC Static control
推荐阅读
-
用背景渐变的透明度设置不同颜色的背景渐变_html/css_WEB-ITnose
-
如何设置网页的背景为透明
-
css设置背景半透明,文字不透明效果
-
vs2017开发ActiveX(主讲OCX)(三)、MFC ActiveX控件向导中的控件设置
-
Android设置Activity背景为透明style的简单方法(必看)
-
Android设置Activity背景为透明style的简单方法(必看)
-
如何设置网页的背景为透明
-
PPT2010设置页面背景图片的透明度以达到更好的视觉效果
-
设置div背景透明的方法示例
-
使用css3背景渐变中的透明度来设置不同颜色的背景渐变_html/css_WEB-ITnose