[英]How do you get the coordinates (with respect to a window) of a mouse click, in a Windows environment
使用Windows環境窗口HWND
,如何獲得在該窗口上單擊鼠標的坐標?
編輯:抱歉,含糊其辭。 我有一個HWND對象,並且正在對其進行一些圖像分析。 我希望能夠單擊HWND對象中顯示的圖像上的一個點,並打印出單擊的x,y坐標,以及在x和y坐標處的圖像的某些屬性
ScreenToClient
和ClientToScreen
函數在屏幕坐標系和客戶端坐標系之間轉換。 鼠標消息以客戶端相對坐標的形式傳遞到Windows。
但是,您的問題並不十分清楚,因此,如果我沒有提供所需的答案,請編輯您的問題以確切說明您的要求。
David Heffernan已經給出了答案的基礎。 為了更完整,這是完整的過程:
每個窗口都有一個唯一的HWND
,它是內部數據結構的句柄。 該結構除其他外還包含指向WindowProc
(窗口過程)的函數指針。 此窗口過程負責處理諸如WM_LBUTTONUP
消息。 每個窗口消息都有兩個關聯的參數,歷史上稱為lparam
和wparam
。 WM_LBUTTONUP
的lparam
參數包含所需的x和y坐標。 您可以通過GET_X_LPARAM(lparam)
和GET_Y_LPARAM(lparam)
檢索它們
Windows支持單個HWND
鏈接多個WindowProc
。 這稱為“子類化”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.