2010-03-09 102 views

回答

3

手柄WM_SYSKEYUPWM_SYSKEYDOWN並返回0

這裏的的WndProc來處理這些消息

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
    int wmId, wmEvent; 
    PAINTSTRUCT ps; 
    HDC hdc; 

    switch (message) 
    { 
    case WM_COMMAND: 
     wmId = LOWORD(wParam); 
     wmEvent = HIWORD(wParam); 
     // Parse the menu selections: 
     switch (wmId) 
     { 
     case IDM_ABOUT: 
      DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); 
      break; 
     case IDM_EXIT: 
      DestroyWindow(hWnd); 
      break; 
     default: 
      return DefWindowProc(hWnd, message, wParam, lParam); 
     } 
     break; 
    case WM_SYSKEYDOWN: 
    case WM_SYSKEYUP: 
    case WM_KEYDOWN: 
    case WM_KEYUP: 
     return 0; 
    case WM_PAINT: 
     hdc = BeginPaint(hWnd, &ps); 
     // TODO: Add any drawing code here... 
     EndPaint(hWnd, &ps); 
     break; 
    case WM_DESTROY: 
     PostQuitMessage(0); 
     break; 
    default: 
     return DefWindowProc(hWnd, message, wParam, lParam); 
    } 
    return 0; 
} 
+0

如何處理c中的這些類型的消息? – Siddiqui

+0

Win32是一個C API。當您在Visual Studio中創建示例Windows應用程序時,應該會看到爲您生成的WndProc。你在那裏處理消息,如上所示。 – Indy9000

2

按alt + f4發送WM_CLOSE消息。 您應妥善處理此訊息。

+0

我該如何處理這種類型的消息??? – Siddiqui

+0

@阿曼,只是要注意,這隻會在程序中禁用鍵盤,而不會在其他程序中使用。另外,你永遠不能禁用CTRL + ALT + DELETE組合。 –

+0

如何在c中禁用?任何提示? – Siddiqui