Windows 窗体
2024-10-19 01:42:07
Windows系统,顾名思义,就是窗口系统,每一个程序都可以用窗口来展示,所以,为了展示窗口,需要多做一系列的工作,当然,也有纯控制台应用,就不用附带窗口了。
首先就是窗口程序的入口地址,与传统的int main(int argc, char *argv[])类似,主函数的参数有一个对应该程序的句柄,相当于pid,一个cmd的输入内容,一个用来标识当前窗口的显示状态。
然后是注册窗口数据,定义一个结构体,放入东西(窗口显示数据,名字、图标什么的),然后系统调用,把这段内存的地址在内核里保存一下,以便内核后续提取展示等,然后是创建窗口,和文件i/o类似,在内核里创建了一段主窗口结构的内存,返回一个对应的句柄给用户调用。
所以每个窗口程序都有有两个句柄,一个主程序句柄,一个窗口句柄。
然后把窗口句柄用GUI输出,开始互交。
之后是消息处理,Windows窗口是事件驱动,不断查看消息队列、翻译命令、处理。如果关闭窗口,会先触发关闭消息,默认是关闭窗口GUI,关闭窗口后会触发关闭句柄和内核窗体结构,触发退出消息循环,然后退出,结束。
由此可知,Windows的窗体部分可以看作一个i/o,窗体部分结构由内核控制,窗体状态的变化靠内核传递消息,主程序用系统调用来操作窗体。根据窗口的用途编可以写不同的模型,比如实时互交、控件操作、播放展示等等。
最新文章
- centos 安装apache 和 php5.6
- Altiium Designer 09 解决局域网冲突的办法(转载)
- UVA 11806 Cheerleaders (容斥原理)
- 【转】【Android】对话框 AlertDialog -- 不错不错
- RGB色彩模式
- poj1823,3667
- MySQL - 日志管理
- jQuery制作右侧边垂直二级导航菜单
- Linux Expect自动化交互脚本简介
- 虚拟机系统安装Messenger和Server
- 利用captcha库绘制验证码
- 微信小程序商业级实战
- HTML的head标签
- windows Git Bash 无法运行python解决方法
- html-文本属性
- xcode 调试器 LLDB
- 用sc命令查询系统状态
- [OpenCV][关于OpenCV3.2.0+VS2015+Win10环境搭建]
- lintcode39 恢复旋转排序数组
- 使用Entity Framework时遇到的各种问题总结