用GDI+贴透明的PNG图片

你的OPPA 2016-06-25 01:57:56
我用GDI+直接把图片绘制到界面上是可以透明的,但是
自绘Button类中用GDI+绘图就实现不了按钮透明,这是为什么?
我就想实现一个CButton类,可以通过路径读取PNG透明图片进行绘制,使按钮透明···
求大神指点···
...全文
565 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
smilecabbage 2016-08-16
  • 打赏
  • 举报
回复
建议你去参考一个 一个类 CButtonST 这个类 ,网上有源码。可以好好学习下,就是针对的 各种各样的按钮。
safedebug 2016-08-15
  • 打赏
  • 举报
回复
太复杂了。楼主直接用界面库吧,比如说炫彩界面库,直接用设置窗口背景,马上就搞定
叶恭介叶恭介 2016-06-30
  • 打赏
  • 举报
回复
联系我,发工程过来看下吧
gz_qmc 2016-06-29
  • 打赏
  • 举报
回复
引用 2 楼 u011330815 的回复:
[quote=引用 1 楼 gz_qmc 的回复:] 有个问题先问问你 透明,半透明,不规则 这三个概念区别是啥?
透明和半透明的区别就是透明部分完全显示背景图,而半透明则在背景图上面加了一层; 不规则与前两者的区别就是按钮点击的有效区域不同[/quote] 逻辑相当混乱 透明就是看不见 半透明就是能透视 不规则和前两者没有关系 你要的是透明,那换显示个卵,都透明了,有必要显示吗? 如果你要的不是透明,那么你要的是半透明换是不规则 有人就把不规则想成透明,也就是部分透明的意思
叶恭介叶恭介 2016-06-29
  • 打赏
  • 举报
回复
可能要加上下面这个,才能吧。 WM_ERASEBKGND BOOL XButton::OnEraseBkgnd(CDC* pDC) { return TRUE; }
你的OPPA 2016-06-29
  • 打赏
  • 举报
回复
引用 1 楼 gz_qmc 的回复:
有个问题先问问你 透明,半透明,不规则 这三个概念区别是啥?
透明和半透明的区别就是透明部分完全显示背景图,而半透明则在背景图上面加了一层; 不规则与前两者的区别就是按钮点击的有效区域不同
牧童吃五谷 2016-06-29
  • 打赏
  • 举报
回复
试试这样是否能行: 响应WM_PAINT消息,在消息的对应函数中编程 void CMyTestButton::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: 在此处添加消息处理程序代码 // 不为绘图消息调用 CButton::OnPaint() CRect rect; GetClientRect(&rect); Gdiplus::Rect gRect(rect.left, rect.top, rect.Width(), rect.Height()); Gdiplus::Graphics gcs(dc.GetSafeHdc()); gcs.DrawImage(pImage, gRect); }
你的OPPA 2016-06-29
  • 打赏
  • 举报
回复
引用 3 楼 cvbtvbwu 的回复:
可能要加上下面这个,才能吧。 WM_ERASEBKGND BOOL XButton::OnEraseBkgnd(CDC* pDC) { return TRUE; }
不行的, Graphics能处理图片透明,但是只能把Graphics处理后的图像画到dc上,再由dc画到按钮上
赵4老师 2016-06-29
  • 打赏
  • 举报
回复
理工科学生也要求语文成绩不低于及格分。
gz_qmc 2016-06-25
  • 打赏
  • 举报
回复
有个问题先问问你 透明,半透明,不规则 这三个概念区别是啥?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧