Windows系统,顾名思义,就是窗口系统,每一个程序都可以用窗口来展示,所以,为了展示窗口,需要多做一系列的工作,当然,也有纯控制台应用,就不用附带窗口了。

  首先就是窗口程序的入口地址,与传统的int main(int argc, char *argv[])类似,主函数的参数有一个对应该程序的句柄,相当于pid,一个cmd的输入内容,一个用来标识当前窗口的显示状态。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

  然后是注册窗口数据,定义一个结构体,放入东西(窗口显示数据,名字、图标什么的),然后系统调用,把这段内存的地址在内核里保存一下,以便内核后续提取展示等,然后是创建窗口,和文件i/o类似,在内核里创建了一段主窗口结构的内存,返回一个对应的句柄给用户调用。

  所以每个窗口程序都有有两个句柄,一个主程序句柄,一个窗口句柄。

  然后把窗口句柄用GUI输出,开始互交。

  之后是消息处理,Windows窗口是事件驱动,不断查看消息队列、翻译命令、处理。如果关闭窗口,会先触发关闭消息,默认是关闭窗口GUI,关闭窗口后会触发关闭句柄和内核窗体结构,触发退出消息循环,然后退出,结束。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄