【MFC】按钮控件如何设置才能真正透明??

shen_wei 2018-04-12 03:22:53

效果图


现在实现,遇到的问题!!


按钮控件在下面,右边是 Staitic 控件绘制图层。

当按钮被按下时,会把按钮透明化的部分给显示出来?类似如图所示。。



1、相互折叠的控件应该如何实现??绘图和自绘的画布都是矩形。

2、Staitic 控件 自顶窗口也是用,也是无效。

请知道的大神们,速速帮忙了。。。
...全文
1515 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2018-04-13
  • 打赏
  • 举报
回复
引用 4 楼 人类新纪元开始了的回复:
[quote=引用 3 楼 paschen 的回复:] 静态创建的控件调整TAB键顺序,动态创建则注意创建的先后顺序,如果创建好了可用SetWindowPos改变Z次序
已经做了图层Tab 顺序调整,结果还是如此,因为按钮是矩形,绘制就算透明层,但是矩形大小还在!! 不规则的按钮就算贴图 其实还是有背景图的,矩形框去不掉。。。 [/quote] 直接使用WS_EX_LAYERED类型窗口来做你的按钮呢?可实现异型窗口,同时是透明的
schlafenhamster 2018-04-13
  • 打赏
  • 举报
回复
"但是矩形大小还在" 使用 rgn SetWindowRgn The SetWindowRgn function sets the window region of a window. The window region determines the area within the window where the system permits drawing. The system does not display any portion of a window that lies outside of the window region int SetWindowRgn( HWND hWnd, // handle to window whose window region is to be set HRGN hRgn, // handle to region BOOL bRedraw // window redraw flag );
shen_wei 2018-04-13
  • 打赏
  • 举报
回复
引用 3 楼 paschen 的回复:
静态创建的控件调整TAB键顺序,动态创建则注意创建的先后顺序,如果创建好了可用SetWindowPos改变Z次序
已经做了图层Tab 顺序调整,结果还是如此,因为按钮是矩形,绘制就算透明层,但是矩形大小还在!! 不规则的按钮就算贴图 其实还是有背景图的,矩形框去不掉。。。
paschen 2018-04-13
  • 打赏
  • 举报
回复
引用 7 楼 人类新纪元开始了的回复:
[quote=引用 6 楼 paschen 的回复:] [quote=引用 4 楼 人类新纪元开始了的回复:] [quote=引用 3 楼 paschen 的回复:] 静态创建的控件调整TAB键顺序,动态创建则注意创建的先后顺序,如果创建好了可用SetWindowPos改变Z次序
已经做了图层Tab 顺序调整,结果还是如此,因为按钮是矩形,绘制就算透明层,但是矩形大小还在!! 不规则的按钮就算贴图 其实还是有背景图的,矩形框去不掉。。。 [/quote] 直接使用WS_EX_LAYERED类型窗口来做你的按钮呢?可实现异型窗口,同时是透明的[/quote] WS_EX_LAYERED 针对的是整个窗口即:Dailog ,对于按钮控件无效。 [/quote] 我意思你可以自绘按钮,而不是使用按钮控件
shen_wei 2018-04-13
  • 打赏
  • 举报
回复
引用 6 楼 paschen 的回复:
[quote=引用 4 楼 人类新纪元开始了的回复:] [quote=引用 3 楼 paschen 的回复:] 静态创建的控件调整TAB键顺序,动态创建则注意创建的先后顺序,如果创建好了可用SetWindowPos改变Z次序
已经做了图层Tab 顺序调整,结果还是如此,因为按钮是矩形,绘制就算透明层,但是矩形大小还在!! 不规则的按钮就算贴图 其实还是有背景图的,矩形框去不掉。。。 [/quote] 直接使用WS_EX_LAYERED类型窗口来做你的按钮呢?可实现异型窗口,同时是透明的[/quote] WS_EX_LAYERED 针对的是整个窗口即:Dailog ,对于按钮控件无效。
paschen 2018-04-12
  • 打赏
  • 举报
回复
静态创建的控件调整TAB键顺序,动态创建则注意创建的先后顺序,如果创建好了可用SetWindowPos改变Z次序
schlafenhamster 2018-04-12
  • 打赏
  • 举报
回复
static 的 order 要 先 绘制, 即 被 覆盖的 控制 要 先 绘制
zgl7903 2018-04-12
  • 打赏
  • 举报
回复
https://www.codeproject.com/Articles/372559/DirectUI

15,979

社区成员

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

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