zoukankan      html  css  js  c++  java
  • Windows程序设计(Charles Petzold)HELLOWIN程序实现

     1 /*--------------------------------------------------------------
     2     HELLOWIN.C--DisPlays "Hello, Windows!" in client area
     3                 (c) Charles Petzold, 1998
     4 --------------------------------------------------------------*/
     5 #include <windows.h>
     6 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
     7 
     8 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreVInstance,
     9                    PSTR szCmdLine, int iCmdShow)
    10 {
    11     static TCHAR szAppName[] = TEXT("HelloWin");
    12     HWND         hwnd;
    13     MSG            msg;
    14     WNDCLASS     wndclass;
    15     
    16     wndclass.style            = CS_HREDRAW | CS_VREDRAW;
    17     wndclass.lpfnWndProc    = WndProc;
    18     wndclass.cbClsExtra        = 0;
    19     wndclass.cbWndExtra        = 0;
    20     wndclass.hInstance        = hInstance;
    21     wndclass.hIcon            = LoadIcon(NULL, IDI_APPLICATION);
    22     wndclass.hCursor        = LoadCursor(NULL, IDC_ARROW);
    23     wndclass.hbrBackground    = (HBRUSH) GetStockObject(WHITE_BRUSH);
    24     wndclass.lpszMenuName    = NULL;
    25     wndclass.lpszClassName    = szAppName;
    26     
    27     if (!RegisterClass(&wndclass))
    28     {
    29         MessageBox(NULL, TEXT("This progam requires Windows NT!"),
    30                     szAppName, MB_ICONERROR);
    31         return 0;
    32     }
    33     
    34     hwnd = CreateWindow(szAppName,                    //window class name
    35                         TEXT("The Hello Program"),    //window caption
    36                         WS_OVERLAPPEDWINDOW,        //window style
    37                         CW_USEDEFAULT,                //initial x position
    38                         CW_USEDEFAULT,                //initial y position
    39                         CW_USEDEFAULT,                //initial x size
    40                         CW_USEDEFAULT,                //initial y size
    41                         NULL,                        //parent window handle
    42                         NULL,                        //window menu handle
    43                         hInstance,                    //program instance
    44                         NULL                        //creation parameters
    45                         );
    46     ShowWindow(hwnd, iCmdShow);
    47     UpdateWindow(hwnd);
    48     
    49     while (GetMessage(&msg, NULL, 0, 0))
    50     {
    51         TranslateMessage(&msg);
    52         DispatchMessage(&msg);
    53     }
    54     return msg.wParam;
    55 }
    56 
    57 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    58 {
    59     HDC            hdc;
    60     PAINTSTRUCT    ps;
    61     RECT        rect;
    62     
    63     switch (message)
    64     {
    65         case WM_CREATE:
    66             //PlaySound(TEXT("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC);
    67             return 0;
    68             
    69         case WM_PAINT:
    70             hdc = BeginPaint(hwnd, &ps);
    71             GetClientRect(hwnd, &rect);
    72             DrawText(hdc, TEXT("Hello, windows!"), -1, &rect,
    73                     DT_SINGLELINE | DT_CENTER| DT_VCENTER);
    74             EndPaint(hwnd, &ps);
    75             return 0;
    76             
    77         case WM_DESTROY:
    78             PostQuitMessage(0);
    79             return 0;
    80     }
    81     return DefWindowProc(hwnd, message, wParam, lParam);
    HELLOWIN.c

    vs新建一空的win32应用程序,将已经编辑好的代码文件添加至源文件中。在工程属性->附加依赖项中添加"winmm.lib"(或将PlaySound()函数注释掉),编译运行,查看结果。

  • 相关阅读:
    vue后台管理系统项目
    javascript面试题
    webpack学习
    js全局变量收集器
    Koa2框架token验证
    require.js使用
    Koa2中使用art-template模板和静态资源托管
    Koa2POST请求参数
    H5、C3、ES6的新特性
    H5视频播放
  • 原文地址:https://www.cnblogs.com/web1013/p/5359967.html
Copyright © 2011-2022 走看看