码迷,mamicode.com
首页 > Windows程序 > 详细

关于RegisterClass和CreateWindow

时间:2014-09-24 00:16:45      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   sp   c   r   c++   bs   window   

      RegisterClass就函数名字和其参数来解释,中文意思是注册窗口类别,顾名思义就是注册一个窗口类,而CreateWindow字面上意思就是创建一个窗口。可能刚做windows开发的对着两个函数及其之间关联有点疑问。

  RegisterClass函数的作用是通知系统,你要定义一个新的窗体类型,然后把这个类型记录到系统里面,以后你就可以使用CreateWindow来创建一个基于此类型的窗体。基于此类型的窗体都具有相同的属性,比如,背景色,光标,图标等等。在MFC中,对于对话框而言,系统已经注册了对话框自己的类型,因此你无需调用RegisterClass就可以使用自带的对话框类创建模态或者非模态窗口。

  对于控件而言,系统已经注册了对话框自己的类型,因此你也无需调用RegisterClass就可以使用CreateWindow来创建控件,而CreateWindow中的第一个参数,正是RegisterClass函数使用的WNDCLASS结构中的成员lpszClassName。
  windows控件与对话框的区别在于,对话框的窗体过程由调用程序提供,而控件的窗体过程是定义在系统中的,你必须对窗体进行子类化(所谓的子类化可以参考我前面《子类化和超类化区别》那篇文章),才能定制控件的处理消息逻辑。
  其实,说白了,早在C语言的Window编程时代,就已经支持了继承,这为以后的C++语言的实现奠定了基础。RegisterClass函数的作用是定义一个窗体类,相对于C++中的class概念,而CreateWindow这个函数是定义基于这个类型的对象,相对于C++中的对象概念。

 

关于RegisterClass和CreateWindow

标签:style   color   使用   sp   c   r   c++   bs   window   

原文地址:http://www.cnblogs.com/just-bg/p/3989233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!