子窗体不会触发WM_LBUTTONDOWN,只会触发WM_LBUTTONUP消息的原因

这里感谢下https://blog.csdn.net/wyy1991990/article/details/19629831 文章的作者,要不是这篇文章,我简直要怀疑人生了。

子窗口无法响应WM_LBUTTONDOWN消息,但是响应WM_LBUTTONUP,原因是和父窗口处理WM_NCACTIVATE相关。

下面是另外一篇文章的关于这个消息的说明,不确定是否准确

当WM_NCACTIVATE消息的wParam参数为true 时表示窗体被激活,为false 时表示窗体改为未被激活的状态。这个时候消息处理过程的返回值,为true 表示允许激活其他的窗体,为false 表示不允许激活其他的窗体。

 另外msdn的链接在这里https://msdn.microsoft.com/en-us/ie/ms632633(v=vs.94)

对于win32窗口,如果不想让窗口闪烁时显示出来自带的边框,一般会选择自己过滤这个消息,该消息的返回值对于主窗口来说,一般返回1即可,也就是上面所说的,允许其他窗体(应该主要是他的子窗体)被激活。具体到duilib里面来讲,就是让bHandled为true,lRes为1即可。

猜你喜欢

转载自blog.csdn.net/u012081284/article/details/96863910