如何使一个窗口不接收鼠标消息

nnue12 2008-04-15 02:20:41
问一下,如何使一个窗口不接收鼠标消息,使鼠标消息传到该窗口(置顶)下面的窗口去?也就是使该窗口相对于鼠标是“透明”的
关键是让鼠标消息传到下面的窗口,光屏蔽只是让该窗口不处理鼠标消息而已
...全文
255 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Eleven 2008-04-16
Up!
回复
xiaoQ008 2008-04-15
HOOK
回复
weiym 2008-04-15
鼠标穿透

dwNewLong = GetWindowLong(hwnd, GWL_EXSTYLE);
dwNewLong |= WS_EX_TRANSPARENT |WS_EX_LAYERED;
SetWindowLong(hwnd, GWL_EXSTYLE, dwNewLong);
回复
菜牛 2008-04-15
WS_EX_TRANSPARENT Specifies that a window created with this style is to be transparent. That is, any windows that are beneath the window are not obscured by the window. A window created with this style receives WM_PAINT messages only after all sibling windows beneath it have been updated.
回复
nnue12 2008-04-15
回复人: carr123 (秀才) 2008-4-15 14:08:53
SetLayeredWindowAttributes 等函数


回复人: nnue12 (书童) 2008-4-15 14:12:21
Re:SetLayeredWindowAttributes 等函数
这个函数是设置窗口透明用的,虽然也可以实现不接收鼠标消息但窗口也不见了

回复人: carr123 (秀才) 2008-4-15 14:13:22
透明度设置得恰当不就不透明了?


回复人: nnue12 (书童) 2008-4-15 14:15:32
Re:透明度设置得恰当不就不透明了?
完全透明才不接收鼠标消息,半透明的话还是会拦截鼠标消息的

回复人: carr123 (秀才) 2008-4-15 14:23:22
颜色透明与鼠标击空是可独立设置的。 不耦合。


回复人: nnue12 (书童) 2008-4-15 14:29:39
Re:颜色透明与鼠标击空是可独立设置的。 不耦合。
问题是怎么独立设,你说的函数只是设置窗口透明用的,不接收鼠标消息只是设置完全透明时附带的效果
回复
nnue12 2008-04-15
不知道,如果是通过鼠标消息转发来实现的话可能会很麻烦。
我想知道有没有方法来注销这个窗口的鼠标消息。使鼠标点击时的消息不传递给程序而直接传下去
回复
nnue12 2008-04-15
把我的窗口想成是透明的,你觉得应该把鼠标消息传给谁?
回复
51365133 2008-04-15
下边的窗口句柄知道不?HOOK上边的消息转过去如何?
回复
weakwater 2008-04-15
如果下面有多个窗口,你想给谁?
最上层的那个吗?
回复
nnue12 2008-04-15
“下面的窗口”是指其他运行中的软件或桌面的窗口
回复
nnue12 2008-04-15
不同。
回复
weakwater 2008-04-15
是在同一个程序中吗
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-04-15 02:20
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……