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()函数注释掉),编译运行,查看结果。

  • 相关阅读:
    jQuery 语法
    jQuery 简介
    把数据存储到 XML 文件
    XML 注意事项
    XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。
    通过 PHP 生成 XML
    XML 命名空间(XML Namespaces)
    XML to HTML
    XMLHttpRequest 对象
    使用 XSLT 显示 XML
  • 原文地址:https://www.cnblogs.com/web1013/p/5359967.html
Copyright © 2011-2022 走看看