簡體   English   中英

在Windows環境中,如何獲取鼠標單擊的坐標(相對於窗口)

[英]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坐標處的圖像的某些屬性

ScreenToClientClientToScreen函數在屏幕坐標系和客戶端坐標系之間轉換。 鼠標消息以客戶端相對坐標的形式傳遞到Windows。

但是,您的問題並不十分清楚,因此,如果我沒有提供所需的答案,請編輯您的問題以確切說明您的要求。

David Heffernan已經給出了答案的基礎。 為了更完整,這是完整的過程:

每個窗口都有一個唯一的HWND ,它是內部數據結構的句柄。 該結構除其他外還包含指向WindowProc (窗口過程)的函數指針。 此窗口過程負責處理諸如WM_LBUTTONUP消息。 每個窗口消息都有兩個關聯的參數,歷史上稱為lparamwparam WM_LBUTTONUPlparam參數包含所需的x和y坐標。 您可以通過GET_X_LPARAM(lparam)GET_Y_LPARAM(lparam)檢索它們

Windows支持單個HWND鏈接多個WindowProc 這稱為“子類化”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM