首页 > 编程语言 >c++创建简单窗口

c++创建简单窗口

时间:2023-09-09 14:23:16浏览次数:40  
标签:return 创建 c++ hInstance hWnd msg 窗口 NULL

#include <Windows.h>

//自定义的窗口过程
LRESULT CALLBACK MyWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) {
    switch (Msg) {
    case WM_DESTROY:  // WM_DESTORY 代表“窗口关闭” 消息
        PostQuitMessage(0);
        return 0;
    default:
        return DefWindowProc(hWnd, Msg, wParam, lParam);
    }
    return 0;
}


int WINAPI WinMain(
    _In_ HINSTANCE hInstance,       // 窗口句柄
    _In_opt_  HINSTANCE hPrevInstance, // 上一个窗口类的句柄
    _In_ LPSTR lpCmdLine,         // 命令行参数 
    _In_ int nShowCmd             // 窗口的显示状态
) {


    WNDCLASSW wnd = {
        CS_HREDRAW,
        DefWindowProc,
        0,0,
        hInstance,
        LoadIcon(NULL, IDI_APPLICATION),
        LoadCursor(NULL, IDC_ARROW),
        (HBRUSH)(GetStockObject(WHITE_BRUSH)),
        NULL,L"MyWindow"
    };

    RegisterClass(&wnd);

    HWND hWnd = CreateWindow(L"MyWindow", L"newWindow",
        WS_OVERLAPPEDWINDOW, 100, 100, 300, 300, NULL, NULL, hInstance, NULL);

    ShowWindow(hWnd, nShowCmd);

    UpdateWindow(hWnd);


    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg); //翻译消息
        DispatchMessage(&msg);  //分发消息到窗口过程
    }


    return 0;
}

 

 

标签:return,创建,c++,hInstance,hWnd,msg,窗口,NULL
From: https://www.cnblogs.com/laremehpe/p/17689423.html

相关文章

  • C++基础总结
    1C++初识1.1第一个C++程序编写一个C++程序总共分为4个步骤创建项目创建文件编写代码运行程序1.1.1创建项目 VisualStudio是我们用来编写C++程序的主要工具,我们先将它打开1.1.2创建文件右键源文件,选择添加->新建项给C++文件起个名称,然后点击添加即可。1.1.3编写代码#include<......
  • C++常用操作
    C++常用操作数组输入二维数组#include<iostream>#include<vector>usingnamespacestd;intmain(){intr=0,c=0;cout<<"输出行数r:";//规定二维数组行数cin>>r;cout<<"输入列数c:";//规定二维数组列数cin>......
  • 用来练习sql的库表创建sql文件
    1.创建work.sql文件,填写以下内容--MySQLdump10.13Distrib5.7.43,forLinux(x86_64)----Host:localhostDatabase:work----------------------------------------------------------Serverversion 5.7.43/*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACT......
  • 创建Anaconda虚拟Python环境的方法
      本文介绍在Anaconda环境下,创建、使用与删除Python虚拟环境的方法。  在Python的使用过程中,我们常常由于不同Python版本以及不同第三方库版本的支持情况与相互之间的冲突情况,而需要创建不同的Python虚拟环境;在Anaconda的帮助下,这一步骤就变得十分方便。  首先,我们需要打......
  • 自己动手写一个C++日志库
    自己动手写一个C++日志库logger.h////CreatedbyFkkton2023/9/8.//#pragmaonce#include<string>#include<iostream>#include<fstream>#include<chrono>#include<sstream>namespacefkkt{classlogger{public:......
  • C# 封装 C++的dll
    C#的程序引用C++的dll时,首先要保证两者基于的平台一致,比如都是x64,或者都是x86的程序,否者两者之间不能直接调用,然后,要保证两者的数据类型可以相互识别,相互通用。在此重点介绍几个常用的数据转换。C++的char*和char[]数组,对应到C#的string类型C++的Handle类型,一般是一个很......
  • C++系列三:QT-Quick
    目录前言:理论:案例:前言:其实和我接触过的Flutter,有异曲同工之处。记住F1,其实就ok了。参考链接:官方、教程1、教程2、教程3、教程3理论:案例://main.cpp:QQmlApplicationEngineengine;engine.load(QUrl(QStringLiteral("qrc:/qt/qml/qtquickapplication1/main.qml")));if(e......
  • Vue源码学习(三):<templete>渲染第二步,创建ast语法树
    好家伙,书接上回 在上一篇Vue源码学习(二):<templete>渲染第一步,模板解析中,我们完成了模板解析现在我们继续,将模板解析的转换为ast语法树 1.前情提要代码已开源https://github.com/Fattiger4399/analytic-vue.git手动调试一遍,胜过我解释给你听一万遍functionstart......
  • C++的纯虚函数和抽象类
    在C++中,可以将虚函数声明为纯虚函数,语法格式为:virtual返回值类型函数名(函数参数)=0;纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上=0,表明此函数为纯虚函数。最后的=0并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。包含纯虚函数的类称为抽......
  • 用现代C++写一个python的简易型list
    std::variant介绍:en.cppreference.com/w/cpp/utility/variant  通过泛型模板(仅提供了int,double,string三种类型的存储),实现了append,pop,front,back,size等方法,并且通过重载运算符实现了对负数索引的访问。#include<iostream>#include<vector>#include<variant>......