用c语言创建windows窗口
- 格式:pdf
- 大小:35.34 KB
- 文档页数:2
⽤c语⾔创建windows窗⼝
耐得住寂寞,禁得起诱惑,这就是程序⼈⽣
步骤:
1.在WinMain中定义各种变量
2.注册窗⼝类RegisterClass
3.创建窗⼝CreateWindow
4.显⽰窗⼝和更新窗⼝
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
5.消息循环
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
1 #include
2
3
4
5 LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
6
7
8
9 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
10
11 {
12
13 MSG msg;
14
15 HWND hwnd;
16
17 static TCHAR szAppName[] = "hl";
18
19
20
21 WNDCLASS wndclass;
22
23 wndclass.style = CS_HREDRAW | CS_VREDRAW;
24
25 wndclass.cbClsExtra = 0;
26
27 wndclass.cbWndExtra = 0;
28
29 wndclass.lpfnWndProc = MyProc;
30
31 wndclass.hInstance = hInstance;
32
33 wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
34
35 wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
36
37 wndclass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
38
39 wndclass.lpszMenuName = NULL;
40
41 wndclass.lpszClassName= szAppName;
42
43
44
45 if(!RegisterClass(&wndclass))
46
47 {
48
49 MessageBox(NULL,TEXT("error"),TEXT("title"),MB_ICONERROR);
50
51 return 0;
52
53 }
54
55 hwnd = CreateWindow(szAppName,
56
57 TEXT("Hello"),
58
59 WS_OVERLAPPEDWINDOW,
60
61 CW_USEDEFAULT,
62 63 CW_USEDEFAULT,
64
65 CW_USEDEFAULT,
66
67 CW_USEDEFAULT,
68
69 NULL,
70
71 NULL,
72
73 hInstance,
74
75 NULL
76
77 );
78
79 ShowWindow(hwnd,nShowCmd);
80
81 UpdateWindow(hwnd);
82
83
84
85 while(GetMessage(&msg,hwnd,0,0))
86
87 {
88
89 TranslateMessage(&msg);
90
91 DispatchMessage(&msg);
92
93 }
94
95 return msg.wParam;
96
97 }
98
99
100
101 LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
102
103 {
104
105
106
107 switch(message)
108
109 {
110
111 case WM_DESTROY:
112
113 PostQuitMessage(0);
114
115 return 0;
116
117 }
118
119 return DefWindowProc(hwnd,message,wParam,lParam);
120
121 }