2016-03-08 162 views
0

我想处理子窗口上的点击与父窗口上的点击相同 - 我怎样才能在winapi中做到这一点?C++ winapi通过鼠标点击子窗口到父窗口

目前,我可以通过按任何地方而不是在子窗口上移动父窗口,因为那样它就不会移动。我该如何改变它?

+1

尝试SetCapture但我认为你必须移动自己的窗口响应捕获鼠标事件。 – Jonathan

+1

很难理解这一点,你只是通过移动父母来“移动”一个孩子的控制权。瞄准标题栏,我想。或者只是调用MoveWindow()。 –

+3

你还没有想过这件事。例如,如果您点击了编辑控件的客户区,您将如何建议使用鼠标选择文本,如果鼠标移动应改为移动父窗口? – IInspectable

回答

0

的作品答案:

case WM_NCHITTEST: 
     if (hWnd==parent) 
     return HTCAPTION; 
     else return HTTRANSPARENT; 
1

捕获鼠标点击所选择的子控件(多个),然后发送一个WM_SYSCOMMAND消息SC_DRAGMOVE(0xF012,又名SC_MOVE或运算用2)作为wParam参数到父窗口。这将调用父窗口上的拖动操作。

如果您搜索SC_DRAGMOVE,这是一个众所周知的技巧,并且有很好的文档记录在网上(不是由微软)。