设置透明窗体问题,请教各位高手!

botao 2004-03-19 05:21:46
我用SetLayeredWindowAttributes()函数设置了一个半透明Dialog。
但是该Dialog上面的控件及自画的一些图形也半透明了,搞得这些控件和图形变得不太清晰了。
我的要求是:只让Dialog(做背景用)半透明,而里面的控件和图形都不要透明。
该怎么处理?请问各为高手。谢谢!
...全文
84 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
clife 2004-03-22
  • 打赏
  • 举报
回复
还不如自己写个gui,可以画出窗体的时候用alphablending,然后再画窗体上的控件。
FireEmissary 2004-03-22
  • 打赏
  • 举报
回复
只在NT内核下有用,没啥意思.
botao 2004-03-22
  • 打赏
  • 举报
回复
继续讨论ing!
StarNCraft 2004-03-21
  • 打赏
  • 举报
回复
抓当前屏幕,把窗体挡住的屏幕绘到你的窗体上,就透明了!
而且不会影响你窗体里的控件!
wuliangge2001 2004-03-21
  • 打赏
  • 举报
回复
gz
bborn 2004-03-21
  • 打赏
  • 举报
回复
其实这样做有很大的缺点,
你要抓当前屏幕,你必须这个你的窗体增加属性 WS_EX_LAYERED
SetWindowLong(hWnd,GWL_EXSTYLE,GetWindowLong(bu,GWL_EXSTYLE)|WS_EX_LAYERED);

这样的话 你才能得到被你窗体挡住的屏幕
但是这样的话 这个窗体在被其他窗体挡住有需要重绘的情况 不会发送消息 不会发送WM_OnPaint 消息 ,对于重绘来说 我还没有想到好办法
薛定谔之死猫 2004-03-21
  • 打赏
  • 举报
回复
关注
botao 2004-03-20
  • 打赏
  • 举报
回复
请问 bborn(五六七嗒八) 换的什么方法就有这个效果了。谢谢!
bborn 2004-03-20
  • 打赏
  • 举报
回复
得到屏幕的dc 再把被你的窗体遮住的屏幕内容绘制到你的窗体上 当做窗体的背景
看起来就象是透明的一样 再绘制你的控件
就这样
bborn 2004-03-19
  • 打赏
  • 举报
回复
刚才发错贴了

你怎么和我研究一样的东西
搞了两天我都快崩溃了

基本上这个理论上不成 应该控间都在窗体里

我后来换了个其他方法差不多成了这个效果
xstring 2004-03-19
  • 打赏
  • 举报
回复
目前系统还没有这功能

只能自己解决了
bborn 2004-03-19
  • 打赏
  • 举报
回复
发错贴了
你怎么和我研究一样的问题
我搞了两天差不多快崩溃了 后来自己想了其他办法

基本上这个应该没有办法 控间都是放在窗体里的 这样应该不行
bborn 2004-03-19
  • 打赏
  • 举报
回复
我晕 自己解决了

15,979

社区成员

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

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