PreSubClassWindow 什么时候调用?它一般作什么操作?

解决方案 »

  1.   

    我先说一下window窗口对象和MFC窗口对象windows窗口对象是具体的窗口,由windows管理的,在系统内部存在,用HWND来唯一标识MFC窗口对象MS对操作windows窗口对象的API的封装,因而使用时要指定具体的windows窗口,可以随时指定,比如CWnd在用MFC写程序时我们看不到绑定HWND的过程,但有时我们却需要在绑定之前做一些事情,这时,可以在PreSubClassWindow中做
      

  2.   

    This member function is called by the framework to allow other necessary subclassing to occur before the window is subclassed. Overriding this member function allows for dynamic subclassing of controls. It is an advanced overridable
      

  3.   

    如果你调用CWnd::SubClassWindow或CWnd::SubClassDlgItem,MFC内部就会在调用SetWindowLong前调用CWnd::PreSubClassWindow函数。假如你重载的窗口类可能需要子类化其他窗口,比如作为Dialog的DDX Control,这时CWnd:OnCreate不会被调用,只能在CWnd::PreSubClassWindow函数里进行初始化工作。一般我是把OnCreate的代码原样复制到PreSubClassWindow以防万一,如果你的控件不可能用于子类化,当让可以不管这个函数。