[英]Is there a way to get the cursor position in a mfc application?
我正在使用OnKeyDown處理程序來檢測Enter鍵是否按下:
void CShortestPathFinderView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if( nChar == VK_RETURN) //Enter key is pressed
{
CClientDC aDC(this);
rubberbanding = 0;
m_pTempElement->vertices[i++]= /*cursor position??*/;
mSecondPoint=m_pTempElement->vertices[0];
m_pTempElement->Draw(&aDC);
}
在if語句的第3行我需要將光標位置存儲在數組中,但是如何獲取該點呢? 處理程序是否為我提供了它? 或者是否有單獨的功能?
要獲取當前光標位置,可以調用GetCursorPos
。 我不相信MFC為此提供了一個包裝器,所以它只是Win32 ::GetCursorPos
。 它返回屏幕坐標中的點,因此您(幾乎可以肯定)希望在存儲之前使用ScreenToClient
將其轉換為客戶區坐標。
但請注意, GetCursorPos
將在您調用時返回光標的位置。 這可能是也可能不是完全一樣的位置光標是在按下鍵時在(雖然它通常是至少相當接近)。
通常,要添加這樣的光標位置,您需要對用戶單擊鼠標按鈕做出反應(例如, WM_LBUTTONDOWN
)。 該消息將告訴您單擊按鈕時鼠標的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.