Windows程序设计中为什么要注册窗口类?
来源:互联网 发布:走出帝制在淘宝怎么搜 编辑:程序博客网 时间:2024/05/16 17:46
转自:http://blog.sina.com.cn/s/blog_711dc8b40100ok9i.html
你想创建什么样的窗口呢?那么,创建什么样的窗口呢?创建前,Window系统可不知道你要的是什么类型的窗口啊(比如标题栏上显示什么图标,鼠标形状是什么,窗口背景颜色等等)。这些类型信息应在你创建前事先告诉Window系统。可以采用这种方法:就是我们事先写一份要创建窗口的类型申请表,提交(注册)给Window系统。然后在创建时,可以让Windows按这个申请表来创建你所要的窗口了。也就是说我们还应该先提交一个申请表,申请成功后再根据这个表创建一个窗口。
我们在使用microsoft平台SDK或者MFC编程时,在创建窗口类后都要先用RegisterClass函数来注册窗口类,这个函数需要一个指向窗口类结构的指针。那么RegisterClass这个windows API函数到底做了什么呢,关于这个函数的源码微软是不会给出来的,因为它只是提供一个系统编程接口,网上也找不到相关说明,只是粗略介绍需要将类注册给系统,但从msdn的atom table说明中我们发现这样一段说明。The system uses atom tables that are not directly accessible to applications. However, the application uses these atoms when calling a variety of functions. For example, registered clipboard formats are stored in an internal atom table used by the system. An application adds atoms to this atom table using。答案有了,在我们构造一个窗口类结构后,我们需要将这个类结构指针加入到system atom table 即SAT中,这样系统就可以通过查找这张表来找到用户自定义的窗口类,window预定义的窗口类指针也在SAT中。SAT实际上实现了一种用于查询的映射,atom实际类型是short,即16位数据。只有系统才可直接访问这张表,但在调用某些api函数时,如Registerclass,可以告知系统来存取这张表。当然,还有本地原子表和全局原子表,这些表应用程序是可以直接访问的。
- Windows程序设计中为什么要注册窗口类?
- windows程序设计 注册窗口类
- VC++中为什么要注册窗口类
- 为什么要注册窗口
- 为什么要学习Windows程序设计?
- windows程序设计读书笔记-------------windows的窗口类
- Windows程序设计里的窗口类(一)
- windows程序设计——窗口类
- 《Windows程序设计》之子窗口
- windows程序设计 创建窗口
- windows程序设计 显示窗口
- windows程序设计之窗口中显示多行文字
- MFC Windows 程序设计 第二章 在窗口中绘图
- RegisterClass注册窗口类不能在代码中动态注册?
- 程序设计中,为什么要解耦
- 程序设计中为什么要解耦?
- Windows程序设计之子窗口设计
- 子窗口控件 -windows程序设计
- 关于IE9在Windows 7中无法卸载或者IE9菜单英文的解决办法
- 观察者模式之二 -发布 订阅模式
- 高性能web开发(画这图不容易啊)
- VC2005: warning LNK4076: 无效的增量状态文件
- 你在UI界面设计中做到了这12点吗
- Windows程序设计中为什么要注册窗口类?
- Tomcat6.0配置JNDI数据源出现的常见异常
- ORACLE监听服务管理
- Java中访问权限-类和接口
- linux NAT 上网
- Struts2的struts.properties配置文件详解
- C语言代码--关于树的插入、四种遍历(前序、中序、后序、层次)、树种结点的删除--我自己的代码
- 拿来主义(QQ令牌的另一种使用)
- spring2.0与spring2.5的差别