zoukankan      html  css  js  c++  java
  • WIN32.01.最简单的Windows应用程序

     1 /*
     2 最简单的Windows应用程序
     3 如你所想,这是最简单的Windows应用程序,仅仅启动一个窗体,但是它具备了最大化,最小化,窗口缩放,关闭等基本功能。
     4 此为标准的Windows应用程序,我们可以在此基础上进行扩展,实现更复杂的应用,如添加新控件、菜单,多窗体甚至绘图等。
     5 
     6 Windows程序都要注册窗口类(10个参数,包含窗口处理程序);然后CreateWindow,ShowWindow,UpdateWindow实现窗口
     7 的创建,显示及更新;然后启用消息循环(传输,分发);注意消息处理函数,必须处理WM_DESTROY消息。
     8 关于Windows的消息处理机制,侯捷《深入浅出MFC》一书也有详细的介绍,可以参考。
     9 
    10 程序来自《Programming Windows》,作者Chales Petzold,此程序只是备忘。 2010-07-18 Phoenix @home
    11 */
    12 #include <Windows.h>
    13 
    14 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    15 {
    16     switch (message)
    17     {
    18     case WM_DESTROY:
    19         PostQuitMessage(0);
    20         return 0;
    21     }
    22     return DefWindowProc(hwnd,message,wParam,lParam);
    23 }
    24 
    25 int __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
    26 {
    27     TCHAR szAppName[] = L"SimpleWindow";
    28     MSG msg;
    29     HWND hwndMain;
    30     WNDCLASS wndclass;
    31 
    32     //wndclass 结构共有10个成员,必须要全部设置才能注册成功
    33     wndclass.lpszClassName = szAppName;
    34     wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    35     wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
    36     wndclass.lpfnWndProc = WndProc;    //指定窗口的消息处理过程
    37     wndclass.hInstance = hInstance;
    38     wndclass.cbClsExtra = 0;
    39     wndclass.cbWndExtra = 0;
    40     wndclass.style = CS_HREDRAW | CS_VREDRAW;
    41     wndclass.lpszMenuName = NULL;
    42     wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
    43 
    44     if (!RegisterClass(&wndclass))    //注册窗口类
    45     {
    46         MessageBox(NULL,TEXT("This Program requires Windows NT."),TEXT("Windows NT Required"),MB_ICONSTOP);
    47         return 0;
    48     }
    49 
    50     //CreateWindow,ShowWindow,UpdateWindow:创建窗口,显示并更新窗口视图
    51     hwndMain = CreateWindow(szAppName,TEXT("The Simple Windows Application"),    WS_OVERLAPPEDWINDOW, 
    52         CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
    53         NULL, NULL,hInstance, NULL);
    54     ShowWindow(hwndMain,nShowCmd);
    55     UpdateWindow(hwndMain);
    56 
    57     //Message Loop:启动消息循环
    58     while(GetMessage(&msg,NULL,0,0))
    59     {
    60         TranslateMessage(&msg);
    61         DispatchMessage(&msg);
    62     }
    63 
    64     return msg.wParam ;
    65 }


  • 相关阅读:
    Mysql常用命令
    Centos7初始配置
    centos7配置mysql
    CentOS7 配置阿里云yum源
    Dockerfile
    Centos7部署hadoop 3
    Windows10安装docker
    centos7安装docker
    大数据与分布式架构
    Centos7单主机部署 LAMP + phpmyadmin 服务
  • 原文地址:https://www.cnblogs.com/flaaash/p/1780284.html
Copyright © 2011-2022 走看看