(1)創建基於對話框的單文檔應用程序,在對話框上新建一個按鈕。
(2)爲按鈕添加一個以CButton的父類的CTestBtn類,併爲CTestBtn添加WM_MOUSEMOVE消息處理函數,用來接收當鼠標滑過Button的消息。
(3)在WM_MOUSEMOVE的消息處理函數中,用GetWindowRect來得到Button的當前位置的信息。
(4)由於GetWindowRect返回的是屏幕座標,所以用ScreenToClient將座標轉化到客戶區座標。然後在調用SetWindowPos或者MoveWindow將按鈕設置到新的位置。
BOOL SetWindowPos ( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags );
void GetWindowRect( LPRECT lpRect ) const;
void MoveWindow ( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );
總結:目前沒有製作成功,原因也沒有查到,能瞭解到的是在屬於對話框的控件能通過GetParent()來得到對話框的指針,從而來實現對對話框的訪問。
如果,各位發現了我在製作過程中有什麼地方不對,請大家指出,小弟不勝感激。