索引I有此板(0,0是左上角):計算從鼠標位置
並讓說,一個塊是LABEL_SIZE高度和寬度。 並讓我們說紅色和藍色的點是鼠標點擊。 和我有一個二維數組,這個板,我想訪問單元格 ,在那裏我點擊鼠標(藍色或紅色點)。所以它看起來就像是簡單的邏輯到 計算ptCursor.x/LABEL_SIZE來訪問該列,而ptCursor.y/LABEL_SIZE來訪問該行。但是當我嘗試這個地址到另一個單元(如數英里之外)。
怎麼了?
#define LABEL_SIZE 40
#define XLOCATION ptCursor.x/LABEL_SIZE
#define YLOCATION ptCursor.y/LABEL_SIZE
case WM_LBUTTONDOWN:
ptCursor.x = LOWORD(lParam);
ptCursor.y = HIWORD(lParam);
return 0;
case WM_KEYDOWN:
if (wParam >= VK_NUMPAD0 && wParam <= VK_NUMPAD9)
{
wsprintf(szWndText, szFormat, wParam - VK_NUMPAD0);
SetWindowText(hwndLabels[XLOCATION][YLOCATION],
szWndText);
}
return 0;
你確定你不想'hwndLabels [YLOCATION] [XLOCATION]'?通常情況下,C中的2D數組是主要行,因此您首先需要y索引。 –
很難看到您正在查找的鍵盤事件和鼠標事件之間的連接。當用戶從不移動鼠標並按下某個鍵時,您會發生什麼? –
請定義「英里之外」。它是一個有效的單元,還是一個巨大的數字? – paddy