MFC对话框static、radio和checkbox背景透明
2013-04-11 15:49
267 查看
一般是这么做
1.对话框添加两个消息处理。
2.这样来写具体实现
View Code
我这里有3个radio ---> IDC_RADIO_R1,IDC_RADIO_R2,IDC_RADIO_R3和一个checkbox ---> IDC_CHECK_OPEN
一般情况下,这几种控件就是透明的。
但是在windows xp使用xp风格主题下,checkbox会变成黑色背景。如果NULL_BRUSH换成GRAY_BRUSH,checkbox会变成灰色背景。
所以这里可以定义一个和背景色相同的画刷,来替换NULL_BRUSH。
或者将checkbox的chaption设为空,后面放一个static文本框来写checkbox的chaption。
1.对话框添加两个消息处理。
afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
2.这样来写具体实现
View Code
HBRUSH CConfigDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); switch (pWnd->GetDlgCtrlID()) { case IDC_RADIO_R1: pDC->SetBkMode(TRANSPARENT);//背景透明 //pDC->SetTextColor(RGB(255,0,0)); //字体颜色 return HBRUSH(GetStockObject(NULL_BRUSH)); case IDC_RADIO_R2: pDC->SetBkMode(TRANSPARENT); return HBRUSH(GetStockObject(NULL_BRUSH)); case IDC_RADIO_R3: pDC->SetBkMode(TRANSPARENT); return (HBRUSH)GetStockObject(NULL_BRUSH); case IDC_CHECK_OPEN: pDC->SetBkMode(TRANSPARENT); return (HBRUSH)GetStockObject(NULL_BRUSH); default: pDC->SetBkMode(TRANSPARENT); return (HBRUSH)GetStockObject(NULL_BRUSH); } // if (( nCtlColor == IDC_RADIO_R1 )||( nCtlColor == IDC_RADIO_R2 )||( nCtlColor == IDC_RADIO_R3 )||( nCtlColor == IDC_CHECK_OPEN )) //这种写法不行 //调试的时候可以看出来 nCtlColor 不会等于 IDC_RADIO_R1 IDC_RADIO_R2以及IDC_RADIO_R3等 // { // pDC->SetBkMode(TRANSPARENT); // pDC->SetTextColor(RGB(255,255,0)); // //return (HBRUSH)::GetStockObject( NULL_BRUSH); // return (HBRUSH)::GetStockObject(HOLLOW_BRUSH); // } return hbr; }
我这里有3个radio ---> IDC_RADIO_R1,IDC_RADIO_R2,IDC_RADIO_R3和一个checkbox ---> IDC_CHECK_OPEN
一般情况下,这几种控件就是透明的。
但是在windows xp使用xp风格主题下,checkbox会变成黑色背景。如果NULL_BRUSH换成GRAY_BRUSH,checkbox会变成灰色背景。
所以这里可以定义一个和背景色相同的画刷,来替换NULL_BRUSH。
或者将checkbox的chaption设为空,后面放一个static文本框来写checkbox的chaption。
相关文章推荐
- 在MFC对话框中,如何让控件Static和Radio和CheckBox背景透明?
- 在MFC对话框中,如何让控件Static和Radio和CheckBox背景透明?
- 在MFC对话框中,如何让控件Static和Radio和CheckBox背景透明?
- 在MFC对话框中,如何让控件Static和Radio和CheckBox背景透明?
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
- MFC----设置对话框的背景颜色及设置透明
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
- MFC学习——设置对话框的背景颜色及设置透明
- VC/MFC如何设置对话框、static背景颜色
- mfc基本对话框中的控件透明到背景图片
- MFC 使static控件背景透明
- MFC基于对话框如何添加位图并使位图背景透明(TransparentBlt函数)
- MFC 关于Static控件背景透明时文本覆盖重影的问题
- MFC解决Static控件背景透明时文本覆盖重影
- VC中设置了对话框背景图片的情况下不能正确显示radio控件透明
- MFC设置Static控件背景透明
- MFC中设置static控件背景透明
- MFC解决Static控件背景透明时文本覆盖重影
- MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
- MFC中如何使static控件背景透明