windows 程序设计自学:窗口正中显示Hello,World

 1 #include <windows.h>
 2 
 3 LRESULT CALLBACK MyWndProc(  HWND hwnd,      // handle to window
 4   UINT uMsg,      // message identifier
 5   WPARAM wParam,  // first message parameter
 6   LPARAM lParam   // second message parameter
 7   );
 8 
 9 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
10 {
11     WNDCLASS wnd;
12     HWND hwnd;
13     MSG msg;
14     wnd.style = CS_HREDRAW | CS_VREDRAW; //水平或垂直改变窗口都被重绘 与MyWndProc的WM_PAINT消息关联
15     wnd.lpfnWndProc = MyWndProc;
16     wnd.cbClsExtra = 0;
17     wnd.cbWndExtra = 0;
18     wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION);
19     wnd.hCursor = LoadCursor(NULL, IDC_ARROW);
20     wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
21     wnd.lpszMenuName = NULL;
22     wnd.lpszClassName = "HelloClass"; //窗口类标识,用在CreateWindow的第一个参数
23     wnd.hInstance = hInstance;
24     if(!RegisterClass(&wnd))
25     {
26         MessageBox(NULL, TEXT("无法创建窗口"), TEXT("ERROR"), MB_OK|MB_ICONERROR);
27         return 0;
28     }
29     
30     hwnd = CreateWindow("HelloClass", TEXT("Hello"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); //第二个参数为窗口标题
31     ShowWindow(hwnd, nShowCmd);
32     while (GetMessage(&msg, NULL, 0, 0))
33     {
34         TranslateMessage(&msg);
35         DispatchMessage(&msg);
36     }
37     return 0;
38 }
39 
40 LRESULT CALLBACK MyWndProc(  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
41 {
42     HDC hdc; //定义设备环境句柄
43     PAINTSTRUCT ps; //绘制结构
44     RECT rect; //矩形结构
45     switch(uMsg)
46     {
47     case WM_PAINT:
48     {    
49         hdc = BeginPaint(hwnd, &ps);
50         GetClientRect(hwnd, &rect);
51         DrawText(hdc, TEXT("Hello,World!"), -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
52         EndPaint(hwnd, &ps);
53     }
54     break;    
55     case WM_DESTROY:
56         PostQuitMessage(0);
57         return 0;
58     }
59 
60     return DefWindowProc(hwnd, uMsg, wParam, lParam);    
61 }

 

posted @ 2014-07-02 00:38  践道者  阅读(1242)  评论(0编辑  收藏  举报