看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) Visual Studio 2019 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC 問題(Question): 目前有個問題是要抓滑鼠所在位置的座標 小弟是使用OnMouseMove這個函式,發現只能抓取視窗內滑鼠座標,無法抓到視窗外 (如桌面)的滑鼠位置 想請問一下有什麼辦法能實現嗎? 因為剛接觸MFC不太了解 以下是我的程式碼 void CmouseMoveCurPosDlg::OnMouseMove(UINT nFlags, CPoint point) { CClientDC dc(this); CString str; ClientToScreen(&point); str.Format(_T(X: %04d, Y: %04d), point.x, point.y); dc.TextOutW(10, 10, str); CDialogEx::OnMouseMove(nFlags, point); } 會選MFC是因為公司要開發內部使用的視窗程式,而主管要求使用MFC,因為他比較熟悉 MFC的介面 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.136.88 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1590296241.A.6BC.html
binary: 使用hook呢? 05/24 15:53
WPC001: 超過你的視窗... 這已經跟MFC無關了... 直接用hook吧 05/24 16:25
WPC001: 參考看看 SetWindowsHookEx() + WH_MOUSE吧... 05/24 16:27
Schottky: 一般是用 SetCapture 和 ReleaseCapture 去截收滑鼠事 05/24 20:35
Schottky: 件,但這招通常用在拖曳,放開就釋放 capture。 05/24 20:35
Schottky: 滑鼠移出視窗以後就屬於別的視窗了,移動事件被你攔截 05/24 20:35
Schottky: ,會造成其他視窗根本沒辦法操作,這是你要的效果嗎? 05/24 20:35
Schottky: MSDN 的說明: https://bit.ly/3bTUesB 05/24 20:40
student23489: 感謝上面三位大大提供意見,我研究一下這些方法 05/25 22:31