都知道子窗口是能跟着父窗口一块移动的,那么父窗口怎么才能跟着子窗口移动呢?
以前尝试过在子窗口中处理WM_MOVING消息,根据移动的偏移量来MoveWindow父窗口,当然这样可以让父窗口移动,但是子窗口因为他移动的范围受限于父窗口,所以不可能任意的满屏幕去移动。
然而现在有一个更简单的做法,
只需要处理子窗口的WM_LBUTTONDOWN消息即可,就可以让父窗口轻松的任意跟着子窗口移动
C++
case WM_LBUTTONDOWN: { HWND hParentWnd= ::GetParent(hWnd); POINT point = { short( LOWORD( lParam ) ), short( HIWORD( lParam ) ) }; PostMessage(hParentWnd,WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y)); } break;
这样一来就不需要处理繁琐的WM_MOVING消息了
微信
支付宝