我有主窗口,里面有孩子。在子程序中,我需要处理鼠标滚轮滚动,但是在哪里滚动鼠标轮消息到主窗口并不重要。我在Spy++上得到了这些结果。
不知道为什么会发生这种情况,但我认为创建子程序有问题,我的代码:
m_window = CreateWindowEx(0, CustomTreeView::m_className.c_str(), NULL, WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL, x, y, width, height, parent, NULL, NULL, NULL);
发布于 2013-09-17 04:20:42
WM_MOUSEWHEEL
消息被发送到带有焦点的窗口(即最后一个调用SetFocus()
的窗口)。鼠标光标在哪里并不重要--消息总是会转到焦点窗口。
如果焦点窗口不处理轮转消息,则由DefWindowProc
传递给焦点窗口的父窗口,以及它的父窗口,以此类推。因此,轮转消息只将向上移动窗口层次结构。
如果您想要一个没有输入焦点的子窗口来获取轮转消息,那么您需要自己安排将它们转发给它。
如果您这样做,您应该通过一个不同的消息,以避免无限循环的可能性。
https://stackoverflow.com/questions/18849559
复制