zoukankan      html  css  js  c++  java
  • windows程序设计 显示一个窗口

    #include <windows.h>
    
    HINSTANCE hinst;
    
    LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine,
                       int nCmdShow)
    {
        static TCHAR szClassName[] = TEXT("MainWClass");
        WNDCLASSEX wcx;//窗口类
        HWND hwnd;//窗口句柄
        MSG msg;//消息
        hinst = hInstance;//应用程序实例句柄,保存为全局变量。
    
        //填充窗口类的数据结构
        wcx.cbSize = sizeof(wcx);//结构体大小
        wcx.style = CS_HREDRAW | CS_VREDRAW;//样式:窗口大小改变时重绘界面
        wcx.lpfnWndProc = MainWndProc;//窗口消息处理函数
        wcx.cbClsExtra = 0;//不使用类内存
        wcx.cbWndExtra = 0;//不使用窗口内存
        wcx.hInstance = hInstance;//所属的应用程序实例句柄
        wcx.hIcon = LoadIcon(NULL, IDI_APPLICATION);//图标:默认
        wcx.hCursor = LoadCursor(NULL, IDC_ARROW);//光标:默认
        wcx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景:白色
        wcx.lpszMenuName = NULL;//菜单:不使用
        wcx.lpszClassName = szClassName;//窗口类名
        wcx.hIconSm = (HICON)LoadImage(hInstance,
            MAKEINTRESOURCE(5),
            IMAGE_ICON,
            GetSystemMetrics(SM_CXSMICON),
            GetSystemMetrics(SM_CYSMICON),
            LR_DEFAULTCOLOR);//小图标
    
        //注册窗口
        if(!RegisterClassEx(&wcx))
        {
            return 1;
        }
    
        //创建窗口
        hwnd = CreateWindow(
            szClassName,//窗口名
            TEXT("BASE"),//窗口标题
            WS_OVERLAPPEDWINDOW,//窗口样式
            CW_USEDEFAULT,//水平位置X:默认
            CW_USEDEFAULT,//垂直位置Y:默认
            CW_USEDEFAULT,//宽度:默认
            CW_USEDEFAULT,//高度:默认
            NULL,//父窗口:无
            NULL,//菜单:使用窗口类的菜单
            hInstance,//应用程序实例句柄
            NULL//窗口创建时数据:无
            );
    
        if(!hwnd)
        {
            return 1;
        }
    
        //显示窗口
        ShowWindow(hwnd, nCmdShow);
        UpdateWindow(hwnd);
    
        //消息循环
        while(GetMessage(&msg, NULL, 0, 0))
        {
            TranslateMessage(&msg);//翻译消息
            DispatchMessage(&msg);//分发消息
        }
    
        return 0;
    }
    
    LRESULT CALLBACK MainWndProc(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam)
    {
        switch(umsg)
        {
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        }
        return DefWindowProc(hwnd, umsg, wParam, lParam);
    }
  • 相关阅读:
    python生成6位纯数字
    win10下配置nginx
    Unexpected end of JSON input while parsing near '…"
    el-select中显示图标/图片设置
    github上拉去代码执行 npm install报错code:128
    win10下配置多个mysql数据库
    centos7标准版命令界面和图形界面相互切换
    华为RH2288V3服务器部署指南
    datatables屏蔽警告弹窗
    迁移数据时 timestamp类型字段报错: 1067
  • 原文地址:https://www.cnblogs.com/xuqiulin/p/10171927.html
Copyright © 2011-2022 走看看