Win32 SDK 学习笔记2

本文档详细介绍了使用Win32 SDK创建简单窗口的过程,包括注册窗口类和初始化窗口两个主要步骤。注册窗口类涉及WNDCLASSEX结构体的配置,如窗口样式、消息处理函数等;初始化窗口则通过CreateWindow函数实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇主要是创建一个简单窗口的学习笔记,前三篇都是一个简单窗口的学习,目的就是打下基础,后面学习的更熟练。
承接上篇 Win 32 SDK 学习笔记1

一、注册窗口类

“ATOM MyRegisterClass(HINSTSNCE hInstance)”中的ATOM是无符号整数类型,参数hInstance是当前窗口的句柄,这里的关键是API函数RegisterClassEx(&wc)函数

ATOM RegisterClassEx (
     CONST WNDCLASS *lpwcx
);

这个函数的参数是一个 结构体,你想要申请一个什么样的窗口,要事先设置好,然后传给这个函数。有关WNDCLASSEX的结构如下:

typedef struct {
        UINT cbSize            //这个结构体的长度,一般用sizeof(WNDCLASSEX)设置
        UINT style             //窗口式样
        WNDPROC lpfnWndProc    //窗口消息处理的函数名
        int cbClsExtra         //分配给窗口类结构之后的额外字节数,一般为0
        int cbWndExtra         //分配给窗口实例之后的额外字节数,一般为0
        HINSTANCE hInstance    //想要申请的窗口实例句柄
        HICON hIcon            //运行时的图标,NULL时取系统缺省图标
        HCURSOR hCursor        //光标
        HBRUSH hbrBackground   //背景
        LPCTStr lpszMenuName   //菜单
        LPCTStr lpszClassName  //窗口名
        HICON hIconSm;         //缩小时的图标,NULL时取系统缺省图标
} WNDCLASSEX, *PWNDCLASSEX;

窗口式样style的值可用下表的值组合起来设置,窗口处理函数名lpfnWndProc和hInstance 不能设置错。光标有2个hIcon和hIconSm,当取不到不到值时自动分配一个系统缺省值。光标hCursor可选择下面的光标ID设置到结构体中去。关于图标、背景、菜单后面有专门的章节介绍。

设置值解释
CS_HREDRAW窗口客户区宽度发生改变时重绘窗口
CS_VREDRAW窗口客户区高度发生改变时重绘窗口
CS_DBLCLKS鼠标双击时系统所发的消息
CS_NOCLOSE禁用系统菜单中的关闭命令

这里写图片描述

二、初始化窗口

InitInstance()函数中,CreateWindow()函数创建一个窗口,这里说的窗口是广义的窗口,事实上按钮也是窗口,也是由这个函数创建的。其中最关键的是第三个参数,先看一下函数原型。

HWND CreateWindow (
     LPCTSTR lpClassName,//窗口名
     LPCTSTR lpWindowName,//窗口标题
     DWORD dwStyle,//窗口式样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值