我想处理子窗口上的点击与父窗口上的点击相同 - 我怎样才能在winapi中做到这一点?C++ winapi通过鼠标点击子窗口到父窗口
目前,我可以通过按任何地方而不是在子窗口上移动父窗口,因为那样它就不会移动。我该如何改变它?
我想处理子窗口上的点击与父窗口上的点击相同 - 我怎样才能在winapi中做到这一点?C++ winapi通过鼠标点击子窗口到父窗口
目前,我可以通过按任何地方而不是在子窗口上移动父窗口,因为那样它就不会移动。我该如何改变它?
的作品答案:
case WM_NCHITTEST:
if (hWnd==parent)
return HTCAPTION;
else return HTTRANSPARENT;
捕获鼠标点击所选择的子控件(多个),然后发送一个WM_SYSCOMMAND
消息SC_DRAGMOVE
(0xF012,又名SC_MOVE
或运算用2)作为wParam
参数到父窗口。这将调用父窗口上的拖动操作。
如果您搜索SC_DRAGMOVE
,这是一个众所周知的技巧,并且有很好的文档记录在网上(不是由微软)。
尝试SetCapture但我认为你必须移动自己的窗口响应捕获鼠标事件。 – Jonathan
很难理解这一点,你只是通过移动父母来“移动”一个孩子的控制权。瞄准标题栏,我想。或者只是调用MoveWindow()。 –
你还没有想过这件事。例如,如果您点击了编辑控件的客户区,您将如何建议使用鼠标选择文本,如果鼠标移动应改为移动父窗口? – IInspectable