簡體   English   中英

有沒有辦法在mfc應用程序中獲取光標位置?

[英]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.

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