Win32 程序开发:窗口类结构体 WNDCLASS 和 WNDCLASSEX
一、窗口类结构体简介
窗口类结构体包含了窗口的各种参数信息。比如:窗口的图标、菜单栏、背景颜色、窗口的消息处理等等。
窗口类结构体有两个:WNDCLASS(早期版本) 和 WNDCLASSEX(新版本)。至于为什么有 WNDCLASSEX 还要保留老版本的 WNDCLASS?主要是为了兼容以前使用老版本开发的 Win32 程序才保留的。
二、窗口类结构体的成员变量
这里暂时只介绍新版本的 WNDCLASSEX,也更推荐使用新版本的。
typedef struct tagWNDCLASSEXW {
UINT cbSize; // 窗口类结构体的内存大小(new)
UINT style; // 类风格
WNDPROC lpfnWndProc; // 窗口的处理过程
int cbClsExtra; // 指定紧随在 WNDCLASS 数据结构后分配的字节数
int cbWndExtra; // 指定紧随在窗口实例之后分配的字节数
HINSTANCE hInstance; // 窗口类所在模块的实例句柄
HICON hIcon; // 窗口类的图标
HCURSOR hCursor; // 窗口类的光标
HBRUSH hbrBackground; // 窗口类的背景画刷
LPCWSTR lpszMenuName; // 窗口类的菜单资源名
LPCWSTR lpszClassName; // 窗口类的名称
HICON hIconSm; // 窗口类的任务栏图标(new)
} WNDCLASSW
新版本比老版本只多了两个成员变量:cbSize 和 hIconSm。
三、窗口类结构体的使用
示例代码如下:
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // 窗口类的消息处理过程
/* 新增版本的窗口类结构体 */
WNDCLASSEX wndclassex;
wndclassex.style = 0; // 窗口类型为缺省类型
wndclassex.lpfnWndProc = WndProc; // 定义窗口处理函数
wndclassex.cbClsExtra = 0; // 窗口类无扩展
wndclassex.cbWndExtra = 0; // 窗口实例无扩展
wndclassex.hInstance = hInstance; // 当前实例句柄
wndclassex.hIcon = LoadIcon(NULL, IDI_APPLICATION); // 窗口的最小化图标为缺省图标
wndclassex.hCursor = LoadCursor(NULL, IDC_ARROW); // 窗口采用箭头光标
wndclassex.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH)); // 窗口背景为白色
wndclassex.lpszMenuName = NULL; // 窗口无菜单
wndclassex.lpszClassName = L"CLASSNAME"; // 窗口类名
/* 新增的成员变量 */
wndclassex.cbSize = sizeof(WNDCLASSEX); // 窗口类的内存大小
wndclassex.hIconSm = LoadIcon(NULL, IDI_APPLICATION); // 窗口类菜单栏的图标
参考:
Win32 程序开发:窗口类结构体WNDCLASS和WNDCLASSEX
Win32 程序开发:窗口类结构体 WNDCLASS 和 WNDCLASSEX的更多相关文章
- Win32 程序开发:创建一个应用程序窗口
一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSN ...
- win32程序之窗口程序,以及消息机制
win32程序值窗口程序,以及消息机制 一丶简介 通过上一讲.我们了解了窗口其实是绘制出来的.而且是不断绘制的过程. 所以窗口的本质是绘制. 但是我们现在看到的窗口程序.都可以点击关闭按钮. 使用鼠标 ...
- Win32 程序开发入门:一个最简单的Win32程序
一.什么是 Win32 Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境. 这里再介绍下 Win32 Applicatio ...
- 探索Win32系统之窗口类(转载)
Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类", ...
- C语言Windows程序开发—TextOut函数介绍【第02天】
(一)TextOut函数的参数介绍: BOOL TextOut ( //如果函数调用成功,返回TRUE,否则,返回FALSE HDC hdc, //用于显示字符串的控件ID int nXStart, ...
- win32程序之子窗口编程
win32程序之子窗口编程 一丶简介.什么是子窗口 在前边我们已经讲解了窗口的本质.以及如何注册窗口类跟创建窗口. 还讲了消息循环. 那么有很多窗口其实Windows已经帮我们创建出来了.我们直接使用 ...
- Win32 程序在启动时激活前一个启动程序的窗口
UWP 程序天生单实例.当然,新 API (10.0.17134)开始也提供了多实例功能.不过,传统 Win32 程序可就要自己来控制单实例了. 本文介绍简单的几个 Win32 方法调用,使 Win3 ...
- 什么是消息循环,一个简单的win32程序如何运行?
预备知识 1.什么是句柄? (HANDLE) 在win32编程中有各种句柄,那么什么是句柄呢? #define DECLARE_HANDLE(name) struct name##_ { int un ...
- 窗口的子类化与超类化——子类化是窗口实例级别的,超类化是在窗口类(WNDCLASS)级别的
1. 子类化 理论:子类化是这样一种技术,它允许一个应用程序截获发往另一个窗口的消息.一个应用程序通过截获属于另一个窗口的消息,从而实现增加.监视或者修改那个窗口的缺省行为.子类化是用来改变或者扩展一 ...
随机推荐
- Android 弹出Dialog时隐藏状态栏和底部导航栏
上代码 dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); di ...
- RSA加解密&RSA加验签详解
RSA 加密算法是目前最有影响力的 公钥加密算法,并且被普遍认为是目前 最优秀的公钥方案 之一.RSA 是第一个能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击,已 ...
- [C]#include和链接
概述 对于刚接触C语言的同学来说,通常对“在文件中用#include预处理操作符引入文件”和“编译时链接多个文件”这两个操作会有所混淆,这个文章主要为了解析一下它们的区别. #include预处理操作 ...
- ospf邻居建立过程
1. hello报文的作用 邻居发现:自动发现邻居路由器. 邻居建立:完成Hello报文中的参数协商,建立邻居关系. 邻居保持:通过Keepalive机制,检测邻居运行状态. hello报文的发送时间 ...
- 【RTOS】基于V7开发板的最新版uCOS-III V3.07.03程序模板,含MDK和IAR,支持uC/Probe,与之前版本变化较大
模板下载: 链接:https://pan.baidu.com/s/1_4z_Lg51jMT87RrRM6Qs3g 提取码:2gns 对MDK的AC6也做了支持:https://www.cnblog ...
- go语言之map
go语言的map就相当于python的dict 1.map的初始化 //创建map //k的类型是int,v的类型是string var test25_1 map[int]string fmt.Pri ...
- netty源码解析(4.0)-21 ByteBuf的设计原理
io.netty.buffer包中是netty ByteBuf的实现.ByteBuf是一个二进制缓冲区的抽象接口,它的功能有: 可以随机访问.顺序访问. 支持基本数据类型(byte, shor ...
- log4j配置项
log4j 配置文件log4j.rootLogger=INFO,console,dailyFile# 控制台配置项log4j.appender.console=org.apache.log4j.Con ...
- Python Web(四)
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.Django-forms作用 前端和后端都要校验 前端校验的目的:减少后端的压力 用forms可以同时完成前端 ...
- Dynamics CRM - js中用webapi基于fetchxml查询遇到的问题 -- Invalid URI: The Uri scheme is too long.
最近用WebApi做基于Fetchxml的查询的时候,遇到一个很蛋疼的报错:Invalid URI: The Uri scheme is too long. 检查了整个URL,也没发现有什么问题. - ...