Win32创建窗口与子窗口事件处理
win32 的窗口和子窗口事件,逻辑挺绕,但掌握了套路之后也不复杂。窗口创建的消息分发机制比较核心,尤其是像WM_CREATE
、WM_COMMAND
这类消息,理解透了,响应也就顺了。你要是用CreateWindowEx
动态创建子窗口,建议配合窗口类的注册使用,注册窗口类时记得设置lpfnWndProc
,不然消息都收不到。
子窗口的消息其实跟主窗口一样走回调,只是有些控件自带逻辑,比如按钮、文本框这些,你想加点自定义动作,最好还是用Subclass
改它的消息函数。哦对了,子窗口响应父窗口消息的机制也值得注意,是在做布局嵌套时。
如果你是刚摸 Win32 的窗口系统,这几篇文章还蛮值得一看:
- Win32 子窗口应用 —— 讲得挺基础,适合入门
- 层级窗口与子窗口透明方法 —— 这个主要讲层级关系和透明,挺实用
- MFC 如何创建子窗口 subwindow —— 用 MFC 的可以看看,对照 Win32 也有
- Windows 窗口创建 —— 讲得比较系统,能查漏补缺
用 Win32 写窗口,初期最容易绕晕的就是消息和子窗口交互,建议先把主窗口那套流程搞熟,再一步步拆子窗口的逻辑,别一上来就一锅炖。
如果你卡在子窗口的指针获取或者事件响应上,可以参考下获取子窗口指针失败这篇,挺常见的坑。
3.64KB
文件大小:
评论区