• 第一个 Windows 应用程序


    #include <windows.h>

    //窗口过程声明
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

    int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nCmdShow)
    {
        
    const char* szWindowName = "第一个 Windows 应用程序";    //窗口标题
        const char* szClassName = "WindowClass";                    //窗口类名

        
    //创建一个 WNDCLASSEX 结构体变量, 为其设置成员的值
        WNDCLASSEX wndclass;
        wndclass.cbSize        
    = sizeof(WNDCLASSEX);                    //结构大小
        wndclass.style         = CS_HREDRAW | CS_VREDRAW;               //水平重画,竖直重画
        wndclass.lpfnWndProc   = (WNDPROC)WndProc;                      //窗口过程
        wndclass.cbClsExtra    = 0;                                     //没有额外的类内存
        wndclass.cbWndExtra    = 0;                                     //没有额外的窗口内存
        wndclass.hInstance     = hInstance;                             //实例句柄
        wndclass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);       //程序图标
        wndclass.hCursor       = LoadCursor(NULL, IDC_CROSS);           //鼠标样式
        wndclass.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH); //背景白色
        wndclass.lpszMenuName  = NULL;                                    //没有菜单名
        wndclass.lpszClassName = szClassName;                           //窗口类名
        wndclass.hIconSm       = NULL;                                  //没有类的小图标

        
    //注册 WNDCLASSEX 结构体
        ::RegisterClassEx(&wndclass);

        
    //创建主窗口
        HWND hWnd = ::CreateWindowEx(
            
    0,                   //dwExstyle, 扩展样式
            szClassName,         //lpClassName, 类名
            szWindowName,         //lpWindowName, 标题
            WS_OVERLAPPEDWINDOW, //dwStyle, 窗口风格
            CW_USEDEFAULT,       //X, 初始 X 坐标
            CW_USEDEFAULT,       //Y, 初始 Y 坐标  
            CW_USEDEFAULT,       //nWidth, 宽度
            CW_USEDEFAULT,       //nHeight, 高度
            NULL,                //hWndParent, 父窗口句柄
            NULL,                //hMenu, 菜单句柄
            hInstance,           //hInstance, 程序实例句柄
            NULL);               //lpparam, 用户数据

        
    if(hWnd == NULL)
        {
            ::MessageBox(NULL, 
    "创建窗口出错!""error", MB_OK);
            
    return FALSE;
        }

        
    //显示窗口
        ::ShowWindow(hWnd, nCmdShow);

        
    //刷新窗口
        ::UpdateWindow(hWnd);

        
    //消息循环
        MSG msg;
        
    while(::GetMessage(&msg, NULL, 00))
        {
            ::TranslateMessage(
    &msg);
            ::DispatchMessage(
    &msg);
        }

        
    return msg.wParam;
    }

    //窗口过程函数
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        
    const char* szHello = "Hello World";

        
    switch(message)
        {
        
    //重绘窗口
        case WM_PAINT:
            HDC hdc;
            PAINTSTRUCT ps;
            hdc 
    = ::BeginPaint(hWnd, &ps);
            ::TextOut(hdc, 
    1010, szHello, strlen(szHello));
            ::EndPaint(hWnd, 
    &ps);
            
    break;
        
    //销毁窗口
        case WM_DESTROY:
            ::PostQuitMessage(
    0);
            
    break;
        }

        
    //交给系统做默认处理
        return ::DefWindowProc(hWnd, message, wParam, lParam);
    }
  • 相关阅读:
    返回顶部
    判断元素在数组中
    Vue.js相关知识4-路由
    Vue.js相关知识3-路由
    Vue.js相关知识2-组件
    Vue.js相关知识1
    element表格左右滚动条在总计的上面怎么解决
    JAVA的安装及配置环境变量
    uni-app中使用vuex
    前端常用设计模式
  • 原文地址:https://www.cnblogs.com/linsongbin/p/1391210.html
Copyright © 2020-2023  润新知