windows编程笔记【三】注册windows类 创建窗口

win32-注册窗口类、创建窗口 阅读详情

本笔记源自windows游戏编程大师技巧第二版2.8章,记做学习随笔。

使用vs2017环境编译。

要创建一个窗口,需要使用CreateWindowEx()函数。

该函数是创建Windows类的函数,把我们上一篇WNDCLASSEX类实例化,使用到创建窗口中去。

首先看一下CreateWindowEx()函数原型:

HWND CreateWindowEx(
DWORD DdwExStyle,        //窗口的扩展风格
LPCTSTR lpClassName,    //指向注册类名的指针
LPCTSTR lpWindowName,   //指向窗口名称的指针
DWORD dwStyle,          //窗口风格
int x,                  //窗口的水平位置
int y,                  //窗口的垂直位置
int nWidth,             //窗口的宽度
int nHeight,            //窗口的高度
HWND hWndParent,        //父窗口的句柄
HMENU hMenu,            //菜单的句柄或是子窗口的标识符
HINSTANCE hInstance,    //应用程序实例的句柄
LPVOID lpParam          //指向窗口的创建数据
);

该函数创建成功的话,返回一个指向新建窗口的句柄,也就是HWND。

来详细解释一下:

dwExStyle——设置一些属性,一般为NULL

lpClassName——设置之前的创建基础类名,例如“MYNCLASS1”。就是上篇winclass.lpszClassName设置的值。

 lpWindowName——窗口的名称。

dwstyle——这是一个说明窗口外观的通用标志,见下表。任意组合得到你想要的各种特征。

x,y——设置窗口右上角的位置。

nWidth,nHeigth——设置窗口宽高。

hWndParent——如果有父窗口填父窗口的句柄,没有就取NULL。

hMenu——指向附属窗口的句柄,下一篇介绍,现在取NULL。

hInstance——这是应用程序的实例。这里使用WinMain()中第一个实参,hinstance句柄。

lpparame——设为NULL即可,平时用不到。

 

#include <Windows.h>
#include <windowsx.h>

#define WIN32_LEAN_AND_MEAN

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline,int ncmdshow)
{

	WNDCLASSEX winclass;
	winclass.cbSize = sizeof(WNDCLASSEX);
	winclass.style = CS_VREDRAW | CS_HREDRAW | CS_OWNDC | CS_DBLCLKS;
	winclass.lpfnWndProc = WndProc;
	winclass.cbClsExtra = 0;
	winclass.cbWndExtra = 0;
	winclass.hInstance = hinstance;
	winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	winclass.hCursor = LoadCursor(NULL, IDC_ARROW);
	winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
	winclass.lpszMenuName = NULL;
	winclass.lpszClassName = "WINCLASS1";
	winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

	//新加入的代码
	HWND hwnd;
	if (!(hwnd = CreateWindowEx(NULL,
		"WINCLASS1",	//winclass.lpszClassName设置的字符,是类的别名。
		"YouWindows",	//窗口的名称
		WS_OVERLAPPEDWINDOW | WS_VISIBLE,	//一些窗口属性
		0, 0,			//窗口位置
		400, 400,		//窗口宽高
		NULL,			//父窗口句柄
		NULL,			//附属窗口句柄
		hinstance,		//WinMain第一个实参,程序句柄。
		NULL			//null就可以了
			)))
	return 0; //if判断一下hwnd是否为空。
}

这就是我们目前的代码,但是他还不能运行,我们仍没有写WndProc()的定义。

C++调用API初步创建Windows窗口程序 首先在进行介绍前,先介绍一下api,个人理解,api是在windows.h中提供的一些封装好的函数。 创建一个窗口程序的一般步骤是先注册一个窗口类名,然后再创建一个窗口,传递信息进行处理(窗口的操作都是通过信息传递来实现的) 下面介绍几个要用到api函数 RegistetClass()  //该函数只有一个参数,是一个指向WNDCLASS结构的指针 //该函数用来注册一个窗口类 WNDC 阅读详情

相关推荐

Visual Studio创建Windows窗体登录界面代码

把文档里的代码复制到Form.vb中,然后创建相关控件即可实现密码登录的功能。

windows常用注册类命令

windows常用运行命令

one_eyes的博客 1819

窗口类注册、窗口创建、过程函数

 这是一个最简单的SDK程序。包括窗口类注册、窗口创建、过程函数、在窗口显示文本等,几乎每一行都有中文注释和函数使用说明,Win32编程初学者千万不容错过,可不要小看这个程序,它是所有SDK程序框架的灵魂。 

Windows编程02_注册窗口类,窗口创建,消息基础,常见消息,消息循环的原理

注册窗口类,窗口创建,消息基础,常见消息,消息循环的原理

weixin_41865866的博客 776

如何将TDengine集成到Thingsboard?

1 概述 ThingsBoard是用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准的物联网协议MQTT、CoAP和HTTP实现设备连接,并支持云和本地部署。 ThingsBoard迄今没有导入专业的时序数据库应用,用户可选择的只有PostgreSQL和Cassandra。虽然针对PostgreSQL引入了TimeScale插件,但由于其不是按照宽表的方式组织数据记录,TimeScale的优势根本发挥不出来。总之,这两种数据库不具备高效的数据吞吐能力。 而且,Thingsboard在

Wearable_device的博客 4767

彻底解决0x80070005错误代码:全面分析与实战指南

0x80070005错误代码虽然令人头疼,但通过上述方法,我们完全有能力将其攻克。从检查磁盘空间、设置账号权限,到运行疑难解答和系统文件检查器,再到调整相关服务状态,每一步都是解决这一问题的关键。希望本文能为你提供有力的帮助,让你在使用Windows系统的过程中更加顺畅无忧。

nntxthml的博客 6939

Windows编程——窗口类的注册

应该结合(002)中的程序例子好好地理解,有十分大的帮助. 链接:WINDOWS程序设计(002)—-HELLOWIN程序(源代码及详细解析) WINDOWS程序原理 1.WNDCLASS类型结构的定义   在WinMain中,我们通常用如下形式定义一个WNDCLASS类型的结构.(定义方式参考后面的附表)   WNDCLASS wndclass;   然后对该结构的10个字段进行初

刘伟佳的博客 1947

PFC中pb模型实战:从胶结参数设置到破坏模拟全流程解析

本文详细解析了PFC软件中平行胶结模型(PB模型)的实战应用全流程。从胶结参数(pb_kn, pb_ks, pb_ten等)的物理意义与精准赋值入手,深入探讨了模型构建、胶结施加以避免初始损伤的技巧,并系统介绍了破坏过程的监测、阈值判定方法以及高级可视化与常见问题诊断。旨在帮助岩土工程与颗粒材料研究者掌握从参数调试到破坏模拟的核心操作,提升数值模拟的准确性与效率。

php55的博客 1075

Windows编程之生成一个简单的完整的窗口

#include &lt;windows.h&gt; //窗口过程回调函数 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { H...

renwu 6500

AxMath行间公式转化为office公式求和符号以及编号显示问题

AxMath行间公式转化为office公式求和符号以及编号显示问题问题描述解决方法 问题描述 首先打出axmath公式,如下: 转换后的OfficeMath公式: 字体先不说,word公式字体默认cambria math且无法编辑。比较难受的一点是求和符号与后面的 ai+bi2a_i+b_i^2ai​+bi2​比例不匹配啊!正常的比例应该是: (虽然也不太正常,将就下) 解决方法 点击变换后的office公式右侧,选择更改为"显示" 可以看到,多了一些软回车符号(⬇),如果你想删除它,不要直接选中

weixin_43543177的博客 4657

【CANoe】CANoe的 I/O功能-以VN1640A为例

Canoe的 I/O功能-以VN1640A为例

星Yeah 的博客 7883

【Windows编程】windows窗口创建过程详解

搞windows开发,必须熟悉vs自己的开发工具,这会提高你的开发效率;我用的是vs2013;感觉不错;

呋喃吖的博客 6484

静态时序分析(STA)—— 标准单元库

目录 1、时序库 概览 2、时序模型 1、基本概念 2、影响因素 3、线性延时模型 4、非线性延时模型 5、单元时序弧 1、组合逻辑单元 2、时序逻辑单元 6、线负载模型 参考说明 上一篇,学习了 STA相关的基本概念,本篇继续学习 STA相关的 标准单元库。 1、时序库 概览 库文件概览: 2、时序模型 1、基本概念 2、影响因素 对于组合逻辑的时序弧而言,其延时的大小取决于: 1、输出负载,即,输出端的电容负载的大小。容性负载越大,...

记录所学,分享知识,结识挚友 2855

Windows 程序设计:创建第一个窗口

超详细的Windows窗口创建教程!只要你有C语言基础就能轻松学会!文章末尾附带完整的Windows窗口创建代码!

先写一个BUG吧 1万+

Python 对接钉钉获取员工上一篇日报或周报内容

摘要:本文介绍使用Python对接钉钉API获取员工日报/周报的方法。首先需创建钉钉应用并开通日志权限,获取员工UserID。通过获取AccessToken进行鉴权,调用topapi/report/list查询日志记录,筛选最新日报/周报后,使用topapi/report/details获取详细内容。需注意权限控制、时间范围筛选和模板匹配等问题。文末提供完整代码示例,并建议扩展自动化触发、数据存储等功能。该方法适用于企业自动化获取员工工作日志的场景。

从技术实践立足,从项目管理方法论延伸思考 814

迟滞比较器原理及计算

为什么要用迟滞比较器 在讲迟滞比较器之前,我们先看一个案例。 在产品设计中常常需要用到电机,而电机在从运转到停止过程中需要泄放能量,这种能量大部分以电压的形式反馈回电源母线(Vbus)导致Vbus母线电压升高,特别是功率大又转速快的电机需要急刹时,产生的反馈电压更高,严重时可能导致母线上其他器件的损坏。 为了防止将电机反馈的能量泄放掉,我们需要设计一个电路来检测母线电压,当母线电压高于某一安全阈值时,打开MOSFET Q1将母线上的能量通过电阻R5以热的形式消耗掉。 假如用一般的比较器,设计如下: Vbu

sinat_15677011的博客 2万+

Windows编程基础,第一个Windows程序,注册窗口,创建窗口

Win32编程,指的是用Window提供的API(Application Programming Interface)为Window编写应用程序。Windows编程,大家也通常称为win32编程,或win32 SDK编程,其含义是针对32位Windows操作系统。 在这一章节中,我们会带大家认识Windows应用程序,编写第一个Windows程序,带大家学习注册窗口和创建窗口。

WdIg-2023的博客 1727

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C++Windows编程之注册窗口类

我们用Visual Studio创建一个win32项目上会自动生成一个注册窗口类。如下: // // 函数: MyRegisterClass() // // 目的: 注册窗口类。 // ATOM MyRegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex

4514

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C++Windows编程之创建窗口

Windows编程之注册窗口类介绍了注册窗口类。接下来就是创建窗体。     我们用Visual Studio创建一个win32项目上会自动生成一个创建窗体函数。如下: < // 函数: InitInstance(HINSTANCE, int) // // 目的: 保存实例句柄并创建主窗口 // // 注释: // // 在此函数中,我们在全局变量中保存实例句柄并 /

1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[学习笔记] Windows编程——窗口和消息 ——(二)窗口类

每个窗口类都有一个由所有该窗口类对象所共享的窗口程序来处理该类的所有窗口实例的消息,以控制其行为和外观。进程必须先注册窗口类,然后才能创建该类的窗口。注册窗口类会将窗口程序、类样式和其他类属性与类名因此类名是比较重要的,是 Key,创建窗口类对象时都是使用类名字符串来查找窗口类)相关联。

cxsydzn的博客 1414

Windows编程系列——第三讲:创建窗口(下)

Windows编程系列——第三讲:创建窗口 这里介绍的是典型的win32窗口应用程序结构,通常需要以下7个步骤: 程序入口点(WinMain函数) 注册窗口类(RegisterClass/EX) 创建窗口类(CreateWindow/ex) 显示主窗口(Show Windows) 更新主窗口(UpdateWindows) 进入消息循环(GetMessage-&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;T

Neo_kh 2434

注册窗口类 registerclass

window把窗口以不同的类别进行设计,通过不同的类别来管理不同的资源,体现模块化管理的思想。以mfc为例Button类别有ccheckbox,cbutton,radiobutton等 ,Static类别有cstatic、staticgroup等。 一个应用程序在创建某个类型的窗口前,必须首先注册该“窗口类”(Windows Class)。注意,这里不是C++类的类。Register Wind...

u011555996的博客 3814

4.注册窗口类和创建窗口

1.注册窗口类函数   (1)RegisterClass/RegisterClassEx     ATOM RegisterClass(CONST WNDCLASS *lpWndClass);     ATOM RegisterClassEx(CONST WNDCLASSEX *lpwcx);     注册成功后,返回一个非0数字标识,失败返回0。   (2)窗口类的风格  ...

diandao9056的博客 507

windows窗口创建流程及window消息机制详解

本文通过对windows窗口创建的流程来分析在windows系统中消息的产生、获取、处理的方法,详细介绍windows的消息机制,方便Windows开发者对windows的消息机制进行理解。

qq_43725310的博客 2883

新手Windows编程基础:消息、窗口与注册表

windows编程基础

re1ife的博客 1254

windows应用程序开发系列五:注册窗口类

开发流程: 1 定义一个窗口处理函数 2 注册窗口类 3 创建窗口 4 显示窗口 5 更新窗口 6 消息循环 窗口类的分类     -系统窗口类      系统已经定义好的窗口类,所有应用程序都可以直接使用。     -应用程序全局窗口类       由用户自己定义,当前应用程序所有模块都可以使用。     -应用程序局部窗口类       由用户自己定义,当前应用程序中

wangping623的专栏 1333
上一篇: windows编程笔记【二】windows类 WNDCLASSEX详解
下一篇: windows编程笔记【四】事件处理函数和主事件循环
崔佳宇_
崔佳宇_ 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄10年 1万+粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值