• 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字典及其内置函数详解
    python函数语法学习
    python切片、迭代、生成器、列表生成式等高级特性学习
    Python入门及安装
    node中的加密模块 crypto
    Nodejs+MongoDB+Bootstrap+esj搭建的个人简易博客
    JavaScript的深拷贝和浅拷贝总结
    redux 学习总结
    简述redux(1)
    通信数据转发程序:代理、网关、隧道
  • 原文地址:https://www.cnblogs.com/xuqiulin/p/10171927.html
Copyright © 2020-2023  润新知