2011-09-19 169 views
1

不完全熟悉用C++編寫圖形用戶界面,而且我遇到了一個問題,即在移動/拖動應用程序窗口後,我的程序不會響應鼠標左鍵單擊。我該怎麼做才能使它正常工作?下面是我如何處理回調函數中的左鍵單擊消息:點擊窗口移動後的座標

case WM_LBUTTONDOWN: 
    { 
     POINT point; 
     GetCursorPos(&point); 
     break; 
    } 
+0

郵政編碼,實際上再現此問題。 –

回答

1

鼠標位置作爲LPARAM包含在消息中。

POINT point; 
point.x = GET_X_LPARAM(lParam); 
point.y = GET_Y_LPARAM(lParam); 

截至MSDN記載,該點是相對於該客戶區的左上角。因此,如果您移動窗口,point仍然會相對於您的窗口。

GetCursorPos獲取光標在屏幕座標中的位置。所以你必須補償你的窗口在屏幕上的位置以獲得可用的位置。