2016-03-08 122 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,這是一個衆所周知的技巧,並且有很好的文檔記錄在網上(不是由微軟)。