社区
界面
帖子详情
Checkbox 背景透明
ruanwenzhongf
2012-10-23 04:24:21
我想把Checkbox的背景弄成透明的,因为我的对话框是设置了背景图片了。其他控件都好弄,可是就是不知道怎么弄checkbox的背景。我想弄成的效果是:checkbox上的字感觉是写在对话框上的。而不是现在这种:字后面一块背景色。
...全文
626
17
打赏
收藏
Checkbox 背景透明
我想把Checkbox的背景弄成透明的,因为我的对话框是设置了背景图片了。其他控件都好弄,可是就是不知道怎么弄checkbox的背景。我想弄成的效果是:checkbox上的字感觉是写在对话框上的。而不是现在这种:字后面一块背景色。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ruanwenzhongf
2012-10-29
打赏
举报
回复
非常感谢大家的积极帮助,
我是用对话框的背景色去填充Check的背景色。
上面也提到了很多方法,值得学习!
yht7905907
2012-10-26
打赏
举报
回复
[Quote=引用 15 楼 的回复:]
引用 14 楼 lfs09 的回复:
背景是图片呢.
的确,如果是图片,if(nCtlColor == CTLCOLOR_BTN)这个判断都不进入。
我已经改进了,两种解决透明的方式:参考此程序
http://download.csdn.net/detail/zhoujielunzhimi/4687178
[/Quote]
感谢,知道该怎么做了。
代码:
HBRUSH CMFCTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
switch (pWnd->GetDlgCtrlID())
{
//针对ID为IDC_CTL1、IDC_CTL2和IDC_CTL3的控件进行同样的设置
case IDC_CHECK1:
pDC->SetBkMode(TRANSPARENT);
/*添加部分*/
CRect rc;
pWnd->GetWindowRect(&rc);
ScreenToClient(&rc);
CDC* dc = GetDC();
pDC->BitBlt(0,0,rc.Width(),rc.Height(),dc,rc.left,rc.top,SRCCOPY); //把父窗口背景图片先画到按钮上
ReleaseDC(dc);
/*添加部分*/
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
yht7905907
2012-10-25
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
OnCtlColor()里面
if(nCtlColor == CTLCOLOR_BTN)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
经过验证,确实可行。
[/Quote]
我也像你这么做过,为啥我就不行呢。麻烦你整个简单小例子发我邮箱我看看 707159146@qq.com 谢谢
yht7905907
2012-10-25
打赏
举报
回复
前几天也遇到这个问题。
建议你的背景图片弄成一种颜色,因为checkbox的背景色除了透明,其他的颜色都能设置。使用2楼的方法变颜色就可以。如果像1楼说的那样,你还得响应点击static的消息。随便说说!
你妹的特盗不
2012-10-25
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
把checkbox的字段名字弄空,自己附加透明的static到旁边。
就把字后面的透明模块给解决了
[/Quote]
高.
sumos
2012-10-25
打赏
举报
回复
OnCtlColor()里面
if(nCtlColor == CTLCOLOR_BTN)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
经过验证,确实可行。
sumos
2012-10-25
打赏
举报
回复
[Quote=引用 14 楼 lfs09 的回复:]
背景是图片呢.
[/Quote]
的确,如果是图片,if(nCtlColor == CTLCOLOR_BTN)这个判断都不进入。
我已经改进了,两种解决透明的方式:参考此程序
http://download.csdn.net/detail/zhoujielunzhimi/4687178
你妹的特盗不
2012-10-25
打赏
举报
回复
背景是图片呢.
yht7905907
2012-10-25
打赏
举报
回复
[Quote=引用 12 楼 的回复:]
http://blog.csdn.net/zhoujielunzhimi/article/details/8111120
补上,这是我测试的结果。
[/Quote]
可以做一个资源吗,明天我下载看下。 我照你的方法怎么就不行呢。
sumos
2012-10-25
打赏
举报
回复
http://blog.csdn.net/zhoujielunzhimi/article/details/8111120
补上,这是我测试的结果。
华美乐章
2012-10-25
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
OnCtlColor()里面
if(nCtlColor == CTLCOLOR_BTN)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
经过验证,确实可行。
[/Quote]
这个对单选框确实没作用..1楼的方法可以
Eleven
2012-10-23
打赏
举报
回复
WM_CTLCOLOR消息里SetBkMode(TRANSPARENT)
gfm688
2012-10-23
打赏
举报
回复
最好的方法是在WM_CTLCOLORSTATIC里返回一个位图刷子,返回空刷会有问题的
荔-枝-lin
2012-10-23
打赏
举报
回复
写一个Checkbox类,在OnEraseBkgnd里面获取窗口背景然后OnPaint绘制就ok了
luoyz520
2012-10-23
打赏
举报
回复
CTLCOLOR_LISTBOX 改为 CTLCOLOR_BTN
luoyz520
2012-10-23
打赏
举报
回复
OnCtlColor()里面
if(nCtlColor == CTLCOLOR_LISTBOX)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
傻X
2012-10-23
打赏
举报
回复
把checkbox的字段名字弄空,自己附加透明的static到旁边。
就把字后面的透明模块给解决了
背景
透明
的Static、Radio、
CheckBox
、GroupBox控件
1、支持加载资源中的
背景
图片 2、支持
透明
的Static控件 3、支持
透明
的Radio控件 4、支持
透明
的
CheckBox
控件 5、支持
透明
的GroupBox控件
透明
按钮Radio和
CheckBox
这个程序提供了两种实现
透明
的方法: 1,如果对话框
背景
色是纯色,那么直接返回NULL画刷即可。 2,如果
背景
是图片,那么在OnCtlColor中需要先绘制父窗口
背景
。
Qt5(C++)高级篇之6:QML常用控件自定义组件及多媒体入门
1.带领您深入学习QT5/C++:QML常用控件编程、QML的多媒体入门、逐步提升Qml编程水平。2.所有章节均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决方法(可以下载所有的电子课件与源码)。
透明
checkbox
佛delphi
为标准控件
checkbox
增加transparent属性。为true时
背景
透明
,为false时与标准控件一样
背景
透明
的Static、Radio、
CheckBox
、GroupBox控件,支持PNG图片作为
背景
1、支持加载文件中的PNG图片作为
背景
2、支持
透明
的Static控件 3、支持
透明
的Radio控件 4、支持
透明
的
CheckBox
控件 5、支持
透明
的GroupBox控件
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章