• 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 }
  • 相关阅读:
    CSS中:display:none与visible:hidden的区别
    $(function(){})和$(document).ready(function(){}) 的用法
    JavaScript 全选函数的实现
    HTML:关于a标签的target属性
    CSS:给 input 中 type="text" 设置CSS样式
    JavaScript中“javascript:void(0) ”是什么意思
    Oracle数据库——数据库安全性管理
    使用JavaScript根据从后台获取来的数据打开一个新的页面
    java reflect反射---Java高级开发必须懂的
    Java 类加载机制
  • 原文地址:https://www.cnblogs.com/Hisin/p/2603744.html
Copyright © 2020-2023  润新知