• 关于RegisterClass和CreateWindow


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

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

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

  • 相关阅读:
    HDU 5044 Tree 树链剖分
    HDU 3966 Aragorn's Story 动态树 树链剖分
    HDU 2475 BOX 动态树 Link-Cut Tree
    上阶段总结
    HDU 3487 Play with Chain | Splay
    HDU 3726 Graph and Queries 平衡树+前向星+并查集+离线操作+逆向思维 数据结构大综合题
    VIJOS P1081 野生动物园 SBT、划分树模板
    VIJOS P1647 不差钱 SBT
    HDU 1890 Robotic Sort | Splay
    基础练习(VIP部分-持续更新)
  • 原文地址:https://www.cnblogs.com/just-bg/p/3989233.html
Copyright © 2020-2023  润新知