我想處理子窗口上的點擊與父窗口上的點擊相同 - 我怎樣才能在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