加了WS_EX_LAYERED(半透明)属性后,怎么无法响应Button操作了

不想干IT 2010-01-11 04:34:15
如题。
我想做扩大镜程序。
想实现鼠标放到扩大镜上时,能显示扩大镜(dialog)下面的图片。
现在已经同事添加属性WS_EX_LAYERED,实现了。

但是我发现,虽然能现在对话框下面的图片,但当我鼠标放到扩大镜上时,按住左键能实现拖拽功能,但是不能实现对对话框下面的内容进行操作。如双击选中等。。

求高手解答。。。
...全文
226 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahaking119 2010-01-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gdstcwl 的回复:]
LONG dwNewLong = GetWindowLong(this->GetSaf/eHwnd(),GWL_EXSTYLE);

dwNewLong |= WS_EX_TRANSPARENT;  //鼠标穿透,就可以操作下面的东西了
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,dwNewLong);

dwNewLong &= ~WS_EX_TRANSPARENT;  //取消鼠标穿透
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,dwNewLong);

[/Quote]

正解
不想干IT 2010-01-11
  • 打赏
  • 举报
回复
一下就说到点子上了。正式我需要的。
非常感谢。。
gdstcwl 2010-01-11
  • 打赏
  • 举报
回复
LONG dwNewLong = GetWindowLong(this->GetSaf/eHwnd(),GWL_EXSTYLE);

dwNewLong |= WS_EX_TRANSPARENT; //鼠标穿透,就可以操作下面的东西了
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,dwNewLong);

dwNewLong &= ~WS_EX_TRANSPARENT; //取消鼠标穿透
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,dwNewLong);
不想干IT 2010-01-11
  • 打赏
  • 举报
回复
别沉了。在线等高手。。。

15,976

社区成员

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

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