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 }