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 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值