• window程序设计基本框架


     1 #include<windows.h>
     2 //通用字符串的定义头文件
     3 #include<tchar.h>
     4 
     5 
     6 
     7 //消息回调函数
     8 LRESULT CALLBACK WindowProc(
     9     HWND hWnd,             //窗口句柄
    10     UINT uMsg,             //消息ID
    11     WPARAM wParam,         //消息参数1
    12     LPARAM lParam          //消息参数2
    13     ){
    14     //默认的消息处理函数
    15     return DefWindowProc(hWnd, uMsg, wParam, lParam);
    16 }
    17 
    18 
    19 
    20 //WinMain主函数
    21 //WinMain是一个定义的宏,自适应win32程序的版本是多字节版本还是UNICODE版本
    22 //APIENTTRY 定义的宏,调用方式,此处为_stdcall
    23 int APIENTRY WinMain( 
    24     _In_ HINSTANCE hInstance,          //程序的实例句柄,程序的加载地址
    25     _In_ HINSTANCE hPrevInstance,      //参数已经废弃
    26     _In_ LPSTR     lpCmdLine,          //由调用者传入的命令
    27     _In_ int       nCmdShow){          //由调用者传入的int型参数
    28     //设计一个窗口类:
    29     WNDCLASS wce;
    30     wce.style = CS_HREDRAW | CS_VREDRAW;                  //窗口类的风格
    31     wce.lpfnWndProc = WindowProc;                         //上面的回调函数,指向窗口过程的指针
    32     wce.cbClsExtra = 0;                                   //分配给窗口类的扩展的字节数
    33     wce.cbWndExtra = 0;                                   //分配给窗口实例的扩展的字节数
    34     wce.hInstance = hInstance;                            //实例句柄
    35     wce.hIcon = LoadIcon(hInstance, IDI_APPLICATION);     //类图标的句柄
    36     wce.hCursor = LoadCursor(nullptr, IDC_ARROW);         //类鼠标指针的句柄
    37     wce.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);       //刷新背景所用的画刷的句柄
    38     wce.lpszMenuName = NULL;                              //窗口类包含的菜单的名称
    39     wce.lpszClassName = _T("First");                      //窗口类名
    40     //WNDPROC IpfnWndProc 注册好窗口类后,使用窗口类创建的窗口得到的
    41     //消息全部发送给此成员存储的回调函数,其地位非常的重要
    42 
    43     //注册窗口类
    44     RegisterClass(&wce);
    45 
    46 
    47     //创建窗口
    48     HWND hWnd = CreateWindow(
    49         _T("First"),          //即我们在WNDCLASS的ipszClassName中指定的名称
    50         _T("HAHA"),           //窗口实例上显示的标题文字
    51         WS_OVERLAPPED,        //窗口样式
    52         CW_USEDEFAULT,        //窗口左上边坐标,默认则y省略
    53         0,
    54         CW_USEDEFAULT,        //窗口宽度,高度
    55         0, 
    56         nullptr,              //父类窗口句柄
    57         nullptr,              //窗口菜单或子窗口ID
    58         hInstance,            //窗口所属的应用程序句柄
    59         nullptr);             //窗口附加补充信息
    60 
    61     //显示刷新窗口
    62     ShowWindow(hWnd, SW_SHOW);
    63     UpdateWindow(hWnd);
    64 
    65 
    66 
    67 
    68     //建立消息泵,循环接收处理消息
    69     MSG msg = {};
    70     while (GetMessage(&msg, nullptr, 0, 0)){
    71         TranslateMessage(&msg);
    72         DispatchMessage(&msg);
    73     
    74     }
    75 
    76     //退出程序
    77     return msg.wParam;
    78 }
    让数据变得更安全!
  • 相关阅读:
    [LeetCode] 137. Single Number II
    [LeetCode] 136. Single Number
    [LeetCode] 678. Valid Parenthesis String
    [LeetCode] 605. Can Place Flowers
    [LeetCode] 419. Battleships in a Board
    [LeetCode] 1002. Find Common Characters
    [LeetCode] 912. Sort an Array
    [LeetCode] 350. Intersection of Two Arrays II
    [LeetCode] 349. Intersection of Two Arrays
    [LeetCode] 820. Short Encoding of Words
  • 原文地址:https://www.cnblogs.com/Alyoyojie/p/5250880.html
Copyright © 2020-2023  润新知