zoukankan      html  css  js  c++  java
  • NativeWindow_01_CreateWindow(Ex)_VC6

    1、

     1 #include <windows.h>
     2 
     3 
     4 LRESULT CALLBACK ProcWindow(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
     5 void QuitWindow();
     6 
     7 HINSTANCE    g_hInstance = 0;
     8 HWND        g_hWnd = 0;
     9 
    10 ////////////   ////////////   ////////////   ////////////   ////////////   ////////////
    11 
    12 int WINAPI WinMain(
    13     HINSTANCE _hInstance,        // 当前 hInstance句柄
    14     HINSTANCE _hPrevInstance,    // 之前的 hInstance句柄
    15     LPSTR _lpCmdLine,            // 命令行
    16     int _nCmdShow                // 显示状态
    17 )
    18 {
    19     g_hInstance = _hInstance;
    20 
    21 // 程序(.exe)的图标貌似默认是 资源文件中 的第一个图标??
    22     WNDCLASS wndcls = {0};
    23     wndcls.style        = CS_HREDRAW | CS_VREDRAW;
    24     wndcls.lpfnWndProc    = ProcWindow;
    25     wndcls.cbClsExtra    = 0;
    26     wndcls.cbWndExtra    = 0;
    27     wndcls.hInstance    = _hInstance;
    28     wndcls.hIcon        = LoadIcon(NULL, IDI_ERROR);    // 窗口图标
    29     wndcls.hCursor        = LoadCursor(NULL, IDC_CROSS);
    30     wndcls.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);    // 背景画刷
    31     wndcls.lpszMenuName = NULL;
    32     wndcls.lpszClassName= "zc20110929";
    33 // 注册窗口类
    34     RegisterClass(&wndcls);
    35 
    36     g_hWnd = CreateWindowEx(
    37         NULL, //WS_EX_CLIENTEDGE,
    38         wndcls.lpszClassName,
    39         "ZC Window",
    40         WS_OVERLAPPEDWINDOW,
    41         100, 100,
    42         400, 300,
    43         NULL,
    44         NULL, //g_hMenu,
    45         _hInstance,
    46         NULL);
    47 
    48     ShowWindow(g_hWnd, SW_SHOWNORMAL);
    49     UpdateWindow(g_hWnd);
    50 
    51     MSG msg;
    52     while(GetMessage(&msg, 0, 0, 0))
    53     {
    54         TranslateMessage(&msg);
    55         DispatchMessage(&msg);
    56     }
    57 
    58     return msg.wParam;
    59 }
    60 
    61 LRESULT CALLBACK ProcWindow(
    62     HWND _hWnd, // 窗口句柄
    63     UINT _uMsg, // 消息ID(identifier)
    64     WPARAM _wParam,
    65     LPARAM _lParam)
    66 {
    67     switch (_uMsg)
    68     {
    69     case WM_PAINT:
    70         {
    71             HDC hDc;
    72             PAINTSTRUCT ps;
    73             hDc = BeginPaint(_hWnd, &ps);
    74             TextOut(hDc, 0, 0, "ASDFG zxcvb", strlen("ASDFG zxcvb"));
    75             EndPaint(_hWnd, &ps);
    76             return 0;
    77 //            break;
    78         }
    79     case WM_DESTROY:
    80         {
    81             PostQuitMessage(0);
    82             return 0;    
    83         }
    84     }
    85     return DefWindowProc(_hWnd, _uMsg, _wParam, _lParam);
    86 }
    87 
    88 void QuitWindow()
    89 {
    90     DestroyWindow(g_hWnd);
    91     PostQuitMessage(0);
    92 }

    2、

  • 相关阅读:
    memset使用技巧
    AcWing 843. n-皇后问题
    【Oracle】从12c开始支持的Oralce新分页方案
    Oracle历年版本发布情况
    【SpringBoot】又写了一份新瓶装旧酒的CRUD程序
    【SpringBoot/Actuator】给SpringBoot程序添加Actuator监控管理
    Top Cybersecurity Companies for 2021
    SNAT、DNAT、MASQUERADE的区别
    Flannel的两种模式解析(VXLAN、host-gw)
    kubelet 配置资源预留的姿势
  • 原文地址:https://www.cnblogs.com/cppskill/p/5222017.html
Copyright © 2011-2022 走看看