既然MFC在所有窗口创建的时候用AfxWndProc替换掉了原窗口过程,那还要SubclassWindow方法做什么?
在SubclassWindow方法中也是用AfxWndProc来替换原窗口过程,这样一来,不是用相同的过程AfxWndProc对同一个窗口对象子类化两次吗?
在SubclassWindow方法中也是用AfxWndProc来替换原窗口过程,这样一来,不是用相同的过程AfxWndProc对同一个窗口对象子类化两次吗?
When you create ActiveX Controls dynamically via CWnd::CreateControl(), Windows messages are not sent to your CWnd-derived class. For example, if you create a handler for WM_KILLFOCUS, it is not called. Cause
CWnd::CreateControl() does not subclass the HWND associated with the control. 如果是MFC中的创建窗口用到了AfxWndProc则
在SubclassWindow方法中也是用AfxWndProc来替换原窗口过程,这样一来,不是用相同的过程AfxWndProc对同一个窗口对象子类化两次吗?也不会子类化两次,因为消息的起始点归结为AfxWndProc,从这里引发不同的消息路由,而SubClassWindow 只是将它重新指回到起始点而已,只不过这过程中可以由自己自己来定制(如改变窗口的外观等)这样便实现了子类化!呵呵,个人理解,仅供参考