zoukankan      html  css  js  c++  java
  • windows 程序设计自学:窗口正中显示Hello,World

     1 #include <windows.h>
     2 
     3 LRESULT CALLBACK MyWndProc(  HWND hwnd,      // handle to window
     4   UINT uMsg,      // message identifier
     5   WPARAM wParam,  // first message parameter
     6   LPARAM lParam   // second message parameter
     7   );
     8 
     9 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
    10 {
    11     WNDCLASS wnd;
    12     HWND hwnd;
    13     MSG msg;
    14     wnd.style = CS_HREDRAW | CS_VREDRAW; //水平或垂直改变窗口都被重绘 与MyWndProc的WM_PAINT消息关联
    15     wnd.lpfnWndProc = MyWndProc;
    16     wnd.cbClsExtra = 0;
    17     wnd.cbWndExtra = 0;
    18     wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    19     wnd.hCursor = LoadCursor(NULL, IDC_ARROW);
    20     wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    21     wnd.lpszMenuName = NULL;
    22     wnd.lpszClassName = "HelloClass"; //窗口类标识,用在CreateWindow的第一个参数
    23     wnd.hInstance = hInstance;
    24     if(!RegisterClass(&wnd))
    25     {
    26         MessageBox(NULL, TEXT("无法创建窗口"), TEXT("ERROR"), MB_OK|MB_ICONERROR);
    27         return 0;
    28     }
    29     
    30     hwnd = CreateWindow("HelloClass", TEXT("Hello"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); //第二个参数为窗口标题
    31     ShowWindow(hwnd, nShowCmd);
    32     while (GetMessage(&msg, NULL, 0, 0))
    33     {
    34         TranslateMessage(&msg);
    35         DispatchMessage(&msg);
    36     }
    37     return 0;
    38 }
    39 
    40 LRESULT CALLBACK MyWndProc(  HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    41 {
    42     HDC hdc; //定义设备环境句柄
    43     PAINTSTRUCT ps; //绘制结构
    44     RECT rect; //矩形结构
    45     switch(uMsg)
    46     {
    47     case WM_PAINT:
    48     {    
    49         hdc = BeginPaint(hwnd, &ps);
    50         GetClientRect(hwnd, &rect);
    51         DrawText(hdc, TEXT("Hello,World!"), -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
    52         EndPaint(hwnd, &ps);
    53     }
    54     break;    
    55     case WM_DESTROY:
    56         PostQuitMessage(0);
    57         return 0;
    58     }
    59 
    60     return DefWindowProc(hwnd, uMsg, wParam, lParam);    
    61 }
  • 相关阅读:
    (原)学以致用:用数学公式'幂函数'支持生产经营分析
    CString 成员函数用法大全
    致hr新人的一封信
    [恢]hdu 2560
    [恢]hdu 1907
    [恢]hdu 1267
    [恢]hdu 2554
    [恢]hdu 1329
    [恢]hdu 2317
    [恢]hdu 2555
  • 原文地址:https://www.cnblogs.com/bjdxy/p/3819363.html
Copyright © 2011-2022 走看看