zoukankan      html  css  js  c++  java
  • 应用程序窗口示例

     1 //Windows.h文件中包含应用程序中所需的数据类型和数据结构的定义
     2 #include <Windows.h>
     3 #include <tchar.h>
     4 
     5 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);            //窗口函数说明
     6 //------------------------------以下是入口函数的代码------------------------------
     7 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
     8 {
     9     WNDCLASSEX wcex;
    10     HWND hWnd;
    11     MSG msg;
    12     TCHAR szWindowClass[] = L"窗口示例";                    //窗口类名
    13     TCHAR szTitle[] = L"My Windows";                        //窗口标题名
    14 
    15     //------------------------------以下初始化窗口类------------------------------
    16     wcex.cbSize = sizeof(WNDCLASSEX);                        //窗口类的大小
    17     wcex.style = 0;                                        //窗口类型为默认类型
    18     wcex.lpfnWndProc = WndProc;                            //窗口处理函数为WndProc
    19     wcex.cbClsExtra = 0;                                    //窗口类无扩展
    20     wcex.cbWndExtra = 0;                                    //窗口实例无扩展
    21     wcex.hInstance = hInstance;                            //当前实例句柄
    22     wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    23                                                         //窗口的图标为默认图标
    24     wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    25                                                         //窗口采用箭头光标
    26     wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);    //窗口背景为白色
    27     wcex.lpszMenuName = NULL;                                //窗口中无菜单
    28     wcex.lpszClassName = szWindowClass;                        //窗口类名为“窗口示例”
    29     wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    30                                                         //窗口的小图标为默认图标
    31 
    32     //------------------------------以下进行窗口类的注册------------------------------
    33     if (!RegisterClassEx(&wcex))                            //如果注册失败则发出警告
    34     {
    35         MessageBox(NULL, _T("窗口类注册失败!"), _T("窗口注册"), NULL);
    36         return 1;
    37     }
    38     //------------------------------以下创建窗口------------------------------
    39     hWnd = CreateWindow(
    40         szWindowClass,                                    //窗口类名
    41         szTitle,                                            //窗口实例的标题名
    42         WS_OVERLAPPEDWINDOW,                                //窗口的风格
    43         CW_USEDEFAULT, CW_USEDEFAULT,                        //窗口左下角坐标为默认值
    44         CW_USEDEFAULT, CW_USEDEFAULT,                        //窗口的高和宽为默认值
    45         NULL,                                            //此窗口无父窗口
    46         NULL,                                            //此窗口无主菜单
    47         hInstance,                                        //创建此窗口应用程序的当前句柄
    48         NULL                                                //不使用该值
    49         );
    50     if (!hWnd)                                            //如果创建窗口失败则发出警告
    51     {
    52         MessageBox(NULL, L"创建窗口失败!", _T("创建窗口"), NULL);
    53         return 1;
    54     }
    55     ShowWindow(hWnd, nCmdShow);                            //显示窗口
    56     UpdateWindow(hWnd);                                    //绘制用户区
    57     while (GetMessage(&msg, NULL, 0, 0))                    //消息循环
    58     {
    59         TranslateMessage(&msg);
    60         DispatchMessage(&msg);
    61     }
    62 
    63     return(int)msg.wParam;                                    //程序终止时将信息返回系统
    64 }
    65 //------------------------------以下是窗口函数的代码------------------------------
    66 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    67 {
    68     switch (message)
    69     {
    70     case WM_DESTROY:
    71         PostQuitMessage(0);                                //调用PostQuitMessage发出WM_QUIT消息
    72         break;
    73     default:
    74         return DefWindowProc(hWnd, message, wParam, lParam);
    75                                                         //默认时采用系统消息默认处理函数
    76         break;
    77     }
    78     return 0;
    79 }
  • 相关阅读:
    【android】 判断文件是否存在,ImageView scaletype
    【live】回老家,那些感触
    【android】 浏览文件,如浏览sd卡下的图片文件
    【android】java.lang.NoClassDefFoundError或classnotfount等异常错误
    【android】style和theme
    【android】两个按钮的宽度各占屏幕的一半
    【java】html解析
    关于敏感词过滤的一点想法
    JAVA中Vector与ArrayList异同
    MySQL实用语句 GROUP BY ... HAVING ...
  • 原文地址:https://www.cnblogs.com/jacen789/p/4705586.html
Copyright © 2011-2022 走看看