MFC第三方控件的使用需要小心

来源:互联网 发布:oracle sql 级联删除 编辑:程序博客网 时间:2024/05/21 10:20

最近用了几个MFC(VC6)的第三方控件,包括一个可以调整颜色,大小,字体等等的List控件,还有一个可以动态增减属性页的Tab控件。

要小心搞清这些控件的使用方法。这两个控件的使用方法就有不同。那个List控件就要求先用MFC自己的List控件做布局,只是把control对象替换为改进过的List的control类。因为这个改进类是继承于标准List控件的。所以控件绑定的窗口还是标准List控件的窗口。

而那个新Tab控件就不同,不需事先分配标准Tab控件,而是直接实例化新控件对象,然后调用它的Create函数创建自己的窗口。如果采用上一段描述的方式来使用该Tab控件,就会产生断言失败(Assert Failure)。失败发生在Create函数中,当它试图为该Tab控件创建新窗口来绑定时,发现该对象已经有窗口了(布局时标准Tab控件的窗口),导致断言错。

通过这个错误,我在调试的时候也进一步了解到MFC对窗口类(CWnd)的处理方式,控件和对话框都继承自CWnd类。CWnd以及窗口句柄(HANDLE m_hWnd)的区别和联系体现了MFC如何封装windows窗口对象。

原创粉丝点击