《windows程序设计》学习_2.1:初识消息

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