2016-01-13 58 views
1

我有一個基於對話框的MFC項目。我有ON_WM_KEYDOWN()函數工作,當我按下向下鍵它做它應該的。如何切換兩個鍵盤按鍵操作?

現在我想將下鍵改爲'w'鍵,左鍵爲'a'等。我有非常基本的MFC知識,我不知道我應該添加什麼功能,以及什麼部分該計劃改變。

ON_WM_KEYDOWN()功能如下所示:

if(pMsg->message == WM_KEYDOWN) 
{ 
    switch(pMsg->wParam) 
    { 
    // Disable OK & Cancel function 
    case VK_ESCAPE: 
    case VK_RETURN: 
     return TRUE; 
    } 
} 

回答

0

變量pMsg->wParam包含已被按下的鍵。您可以查看關鍵代碼here。因此,你需要類似一些代碼在你ON_WM_KEYDOWN處理程序如下:

if(pMsg->message == WM_KEYDOWN) 
{ 
    switch(pMsg->wParam) 
    { 
    case 0x57: 
     // W key. Put code for "up" here... 
     break; 
    case 0x41: 
     // A key. Put code for "left" here... 
     break; 
    case 0x53: 
     // S key. Put code for "down" here... 
     break; 
    case 0x44: 
     // D key. Put code for "right" here... 
     break; 
    // Disable OK & Cancel function 
    case VK_ESCAPE: 
    case VK_RETURN: 
     return TRUE; 
    } 
} 

如果你想一個鍵執行光標左鍵相同的動作,例如,然後你可以做到這一點通過WM_KEYDOWN消息與PostMessage功能發送VK_LEFT

PostMessage(WM_KEYDOWN, VK_LEFT, 0); 

但是,我沒有嘗試這個,我不知道這是否是一個好的作風這樣做。

+0

謝謝!這麼簡單:) – Gil

+0

歡迎:) – honk