《windows程序设计》学习_2.2:初识消息,双键的使用

  1 /* 双键的使用 */
  2 
  3 #include <windows.h>
  4 
  5 
  6 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);    
  7 
  8 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  9                    PSTR szCmdLine, int iCmdShow)
 10 {
 11     static TCHAR szAppName[] = TEXT ("HelloWin");
 12     HWND         hwnd;
 13     MSG          msg;
 14     WNDCLASS     wndclass;
 15     
 16     wndclass.style              = CS_HREDRAW | CS_VREDRAW  ;
 17     wndclass.lpfnWndProc        = WndProc ;
 18     wndclass.cbClsExtra         = 0 ;
 19     wndclass.cbWndExtra         = 0 ;
 20     wndclass.hInstance          = hInstance ;
 21     wndclass.hIcon              = LoadIcon(NULL,IDI_APPLICATION) ;
 22     wndclass.hCursor            = LoadCursor(NULL,IDC_ARROW) ;
 23     wndclass.hbrBackground      = (HBRUSH) GetStockObject(WHITE_BRUSH) ;
 24     wndclass.lpszMenuName       = NULL ;
 25     wndclass.lpszClassName      = szAppName ;
 26     
 27     if(!RegisterClass(&wndclass))
 28     {
 29         MessageBox(NULL, TEXT("This program requires Windows NT!"),
 30             szAppName, MB_ICONERROR);
 31         
 32         return 0;
 33     }
 34     
 35     hwnd = CreateWindow(szAppName,
 36         TEXT("The Hello Program"),
 37         WS_OVERLAPPEDWINDOW,
 38         CW_USEDEFAULT,
 39         CW_USEDEFAULT,
 40         CW_USEDEFAULT,
 41         CW_USEDEFAULT,
 42         NULL,
 43         NULL,
 44         hInstance,
 45         NULL);
 46     
 47     ShowWindow(hwnd , iCmdShow);
 48     UpdateWindow(hwnd);
 49     
 50     while(GetMessage (&msg, NULL, 0, 0))
 51     {
 52         TranslateMessage(&msg);
 53         DispatchMessage(&msg);
 54     }
 55     
 56     return msg.wParam;
 57 }
 58 
 59 LRESULT CALLBACK WndProc(HWND hwnd , UINT message , WPARAM wParam , LPARAM lParam)
 60 {
 61     HDC         hdc;
 62     PAINTSTRUCT ps;
 63     RECT        rect;
 64     
 65     switch(message)
 66     {
 67     case WM_CREATE:
 68 //        PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
 69         return 0;
 70         
 71     case WM_PAINT:
 72         hdc = BeginPaint(hwnd , &ps);
 73         
 74         GetClientRect(hwnd, &rect);
 75         
 76         DrawText(hdc , TEXT("Hello Windows 98!") , -1 ,&rect , 
 77             DT_SINGLELINE | DT_CENTER | DT_VCENTER);
 78         
 79         EndPaint(hwnd,&ps);
 80         
 81 //        PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
 82         return 0;
 83 
 84     case WM_LBUTTONDOWN:
 85         if(wParam & MK_RBUTTON)
 86             PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
 87         return 0;
 88 
 89     case WM_RBUTTONDOWN:
 90         if(wParam & MK_LBUTTON)
 91             PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
 92         return 0;
 93         
 94     case WM_DESTROY:
 95 //        PlaySound (TEXT ("123.wav"), NULL , SND_FILENAME |SND_ASYNC);
 96         PostQuitMessage(0);
 97         return 0;
 98     }
 99     return DefWindowProc(hwnd,message,wParam,lParam);
100 }
原文地址:https://www.cnblogs.com/Hewie/p/3422026.html