Win32 Hello World程序[转]

完全参考<<Windows程序设计 第五版>>

Win32 Hello World程序源码如下:


 1 #include <windows.h>
 2 
 3 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 4 
 5 int WINAPI WinMain(HINSTANCE hInstance,
 6                    HINSTANCE hPrevInstance,
 7                    LPSTR lpCmdLine,
 8                    int nShowCmd)
 9 {
10     static TCHAR lpszAppName[] = TEXT("HelloWin");
11     HWND      hwnd;
12     MSG       msg;
13     WNDCLASS  wc;
14 
15     wc.style         = CS_HREDRAW | CS_VREDRAW;
16     wc.lpfnWndProc   = WndProc;
17     wc.cbClsExtra    = 0;
18     wc.cbWndExtra    = 0;
19     wc.hInstance     = hInstance;
20     wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
21     wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
22     wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
23     wc.lpszMenuName  = NULL;
24     wc.lpszClassName = lpszAppName;
25 
26     // 注册窗口类
27     if (!RegisterClass(&wc))
28     {
29         MessageBox(NULL, TEXT("This program requires Windows NT!"),
30             lpszAppName, MB_ICONERROR);
31         return 0;
32     }
33 
34     // 创建应用程序主窗口
35     hwnd = CreateWindow(lpszAppName,
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     // 显示窗口
48     ShowWindow(hwnd, nShowCmd);
49     UpdateWindow(hwnd);
50 
51     // 消息循环 
52     while (GetMessage(&msg, NULL, 0, 0))
53     {
54         TranslateMessage(&msg);
55         DispatchMessage(&msg);
56     }
57 
58     return msg.wParam;
59 }
60 
61 //
62 // 窗口过程函数
63 //
64 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
65 {
66     HDC         hdc;
67     PAINTSTRUCT ps;
68     RECT        rect;
69 
70     switch (message)
71     {
72     case WM_CREATE:
73         return 0;
74     case WM_PAINT:
75         hdc = BeginPaint(hwnd, &ps);
76         GetClientRect(hwnd, &rect);
77         DrawText(hdc, TEXT("Hello World!"), -1, &rect, 
78             DT_SINGLELINE | DT_CENTER | DT_VCENTER);
79         EndPaint(hwnd, &ps);
80         return 0;
81     case WM_DESTROY:
82         PostQuitMessage(0);
83         return 0;
84     }
85 
86     return DefWindowProc(hwnd, message, wParam, lParam);
87 }

此文章系转载,出处http://www.cnblogs.com/Hisin/archive/2012/07/22/2603744.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值