摘要:
这个笔记是描述为MFC例程注册特定的窗口类。
1、CWnd的m_hWnd属性或者窗口上的HWND都保存在两个地方:窗口对象和WNDCLASS。
2、窗口类的注册有四种方法:
a) MFC隐式提供的WNDCLASS
b) 窗口控件的隐式子类化
c) 显式地调用AfxRegisterWndClass 或者AfxRegisterClass
d) 显式地高用RegisterClass
3、MFC提供的默认提供的类:AfxWnd,AfxFrameOrView,AfxMDIFrame,AfxControlBar
4、AfxRegisterWndClass返回一个指向static string的临时指针,这个指针一直到下一次调用AfxRegisterWndClass时无效。(如果要一直使它有效的话可以把它保存在一个CString中)
5、AfxRegisterWndClass调用失败会产生一个CResourceException。
6、在DLL中用注册的窗口类不会自动UnRegister,你必需手动消除窗口类。在DLL中一定使用AfxRegisterClass (or AfxRegisterWndClass ) 回为它们会维护唯一的窗口类链表且会自动unregister窗口类。而RegisterClass不会,这就会产生其他应用程序使用这个DLL时出现异常。