当前位置: 首页 > news >正文

「Win」Windows 之 RegisterClassEx 注册窗口类

✨博客主页
何曾参静谧的博客(✅关注、👍点赞、⭐收藏、🎠转发)
📚全部专栏(专栏会有变化,以最新发布为准)
「Win」Windows程序设计「IDE」集成开发环境「定制」定制开发集合
「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发
「QT」QT5程序设计「File」数据文件格式「UG/NX」BlockUI集合
「Py」Python程序设计「Math」探秘数学世界「PK」Parasolid函数说明
「Web」前后端全栈开发「En」英语从零到一👍占位符
「AI」人工智能大模型「书」书籍阅读笔记

目录

  • RegisterClassEx 注册窗口类
    • 示例:注册多个窗口类
    • 常见用途
    • 注意事项

RegisterClassEx 注册窗口类

示例:注册多个窗口类

// 第一个窗口类 - 主窗口WNDCLASSEX wcxMain;wcxMain.cbSize=sizeof(wcxMain);wcxMain.style=CS_HREDRAW|CS_VREDRAW;wcxMain.lpfnWndProc=MainWndProc;// ... 其他设置wcxMain.lpszClassName=L"MainWindowClass";RegisterClassEx(&wcxMain);// 第二个窗口类 - 子窗口/控件WNDCLASSEX wcxChild;wcxChild.cbSize=sizeof(wcxChild);wcxChild.style=CS_HREDRAW;wcxChild.lpfnWndProc=ChildWndProc;// ... 其他设置wcxChild.lpszClassName=L"ChildWindowClass";RegisterClassEx(&wcxChild);// 第三个窗口类 - 对话框WNDCLASSEX wcxDialog;wcxDialog.cbSize=sizeof(wcxDialog);wcxDialog.style=CS_DBLCLKS;wcxDialog.lpfnWndProc=DialogWndProc;// ... 其他设置wcxDialog.lpszClassName=L"DialogClass";RegisterClassEx(&wcxDialog);

常见用途

一个进程注册多个窗口类的常见场景:

  1. 不同类型的窗口:主窗口、子窗口、工具窗口等
  2. 自定义控件:创建自己的按钮、列表框等控件类
  3. 不同外观/行为:使用不同的窗口过程处理不同的窗口行为
  4. MDI应用程序:框架窗口、子窗口等

注意事项

  1. 类名必须唯一:每个注册的窗口类必须有唯一的lpszClassName

  2. 检查返回值RegisterClassEx返回ATOM(非零值表示成功),最好检查是否成功:

if(!RegisterClassEx(&wcxMain)){// 处理错误DWORD error=GetLastError();// ...}
  1. 避免重复注册:如果类名已注册,RegisterClassEx会失败。可以使用GetClassInfoEx检查:
WNDCLASSEX wcx;if(!GetClassInfoEx(theInst,L"MainWindowClass",&wcx)){// 类未注册,可以安全注册RegisterClassEx(&wcxMain);}
  1. 系统资源限制:虽然可以注册多个,但每个窗口类会消耗系统资源,合理控制数量

你的代码是正确的,如果你需要不同类型的窗口,可以继续注册其他窗口类。

何曾参静谧的博客(✅关注、👍点赞、⭐收藏、🎠转发)


http://www.jsqmd.com/news/450327/

相关文章:

  • 2026年贵州抖音短视频代运营公司排行榜发布 - 精选优质企业推荐榜
  • 【2026年最新600套毕设项目分享】springboot教师听评课管理系统(14075)
  • 全栈 AI 开发版本控制深度解析
  • vue基于nodejs的线上超市购物管理系统
  • 【架构心法】把多线程踢出通信底层!从多通道同步控制实战,解构极简高可靠的 ACK 重传状态机
  • 基于微信公众平台的点餐系统的设计与实现
  • LeeCode HOT 100 141.环形链表
  • 车载电源定制行业口碑标杆企业排行,高功率密度电源/电源模块/新能源车载逆变电源,车载电源生产直销口碑推荐榜 - 品牌推荐师
  • 机房技术人员必备:不同规模机房的UPS不间断电源选型全攻略
  • C盘空间不足怎么清理?2026年最新手把手教程与工具盘点
  • 【Svelte】事件管理
  • 融智学理论总纲——从核心公式到四维模型
  • 如何选择合适的单北斗GNSS厂家进行变形监测?
  • 接近真实 AI Agent 框架的工业级模板
  • LastPass钓鱼攻击演进与凭证安全防御体系重构
  • DS4-DAY1-概率论基础与条件概率
  • 低查重AI教材生成指南:掌握技巧,用AI轻松编写专业教材
  • JBoltAI SDK升级JDK21对Java做AI的意义
  • Claude代码使用与API集成指南
  • 在飞桨框架内部动转静模块转换原理
  • COD20无法启动报错msvcp140.dll缺失?安全修复步骤详解
  • 焕新教材编写方式!AI写教材,轻松突破低查重难点
  • PostgreSQL 数据库优化
  • 合法软件武器化:新型钓鱼攻击链分析与动态防御重构
  • AI生成教材新玩法!低查重方法让教材写作更轻松
  • 2026年钢材行业ERP系统盘点:这5家服务商凭何成为TOP选择?
  • 【day001文献阅读】Identifying priority areas for terrestrial ecosystem restoration in China
  • Python ai技术的宝宝成长记录分享系统 母婴商城系统妈宝小程序的设计与实现
  • 电压跟随器 + 低通滤波
  • Python 3.9.0安装教程 Windows版:详细步骤+安装路径修改+桌面快捷方式创建指南