Win32 Hello World程序

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

Win32 Hello World程序源码如下:

#include <windows.h>
 
 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
 int WINAPI WinMain(HINSTANCE hInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine,
                    int nShowCmd)
 {
     static TCHAR lpszAppName[] = TEXT("HelloWin");
     HWND      hwnd;
     MSG       msg;
     WNDCLASS  wc;
 
     wc.style         = CS_HREDRAW | CS_VREDRAW;
     wc.lpfnWndProc   = WndProc;
     wc.cbClsExtra    = 0;
     wc.cbWndExtra    = 0;
     wc.hInstance     = hInstance;
     wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
     wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
     wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
     wc.lpszMenuName  = NULL;
     wc.lpszClassName = lpszAppName;
 
     // 注册窗口类
     if (!RegisterClass(&wc))
     {
         MessageBox(NULL, TEXT("This program requires Windows NT!"),
             lpszAppName, MB_ICONERROR);
         return 0;
     }
 
     // 创建应用程序主窗口
     hwnd = CreateWindow(lpszAppName,
         TEXT("The Hello Program"),
         WS_OVERLAPPEDWINDOW,
         CW_USEDEFAULT,
         CW_USEDEFAULT,
         CW_USEDEFAULT,
         CW_USEDEFAULT,
         NULL,
         NULL,
         hInstance,
         NULL);
 
     // 显示窗口
     ShowWindow(hwnd, nShowCmd);
     UpdateWindow(hwnd);
 
     // 消息循环 
     while (GetMessage(&msg, NULL, 0, 0))
     {
         TranslateMessage(&msg);
         DispatchMessage(&msg);
     }
 
     return msg.wParam;
 }
 
 //
 // 窗口过程函数
 //
 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
     HDC         hdc;
     PAINTSTRUCT ps;
     RECT        rect;
 
     switch (message)
     {
     case WM_CREATE:
         return 0;
     case WM_PAINT:
         hdc = BeginPaint(hwnd, &ps);
         GetClientRect(hwnd, &rect);
         DrawText(hdc, TEXT("Hello World!"), -1, &rect, 
             DT_SINGLELINE | DT_CENTER | DT_VCENTER);
         EndPaint(hwnd, &ps);
         return 0;
     case WM_DESTROY:
         PostQuitMessage(0);
         return 0;
     }
 
     return DefWindowProc(hwnd, message, wParam, lParam);
 }

示例图片


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值