zoukankan      html  css  js  c++  java
  • 关于RegisterClass和CreateWindow

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

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

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

  • 相关阅读:
    Eclipse生成部署描述符(web.xml)
    异步Servlet和异步过虑器
    安装 R 及 R 包
    Servlet封装类
    设计模式——装饰者模式
    Eclipse快速生成覆盖方法、Getter、Setter的方法
    查看CPU核数和内存
    Filter 过滤器
    Listener 监听器
    Tag file
  • 原文地址:https://www.cnblogs.com/just-bg/p/3989233.html
Copyright © 2011-2022 走看看