我在VC6.0中用了个CPropertySheet,大致用法如下:
1、在资源中定义几个page页;其类继承CPropertyPage;
2、在一个dlg类中实例化定义的几个page页,以及定义一个CPropertySheet对象;
3、在dlg类的Oninit函数中将各page加入到CPropertySheet对象;并调create函数创建CPropertySheet。
以上的实现在VC6.0中运行良好;可现在这套代码要移植到VC2005,却发现调create函数创建CPropertySheet的时候失败了!哪位MFC方面的朋友帮忙解释下,多谢!

解决方案 »

  1.   

    看OnInitdialog里面具体出错在哪..
      

  2.   

    看看是不是IDC_什么什么搞错了
      

  3.   

    我用过的情况是 
    VC6的CPropertySheet在VC2005中好像不支持了,当然你也可以在VC2005重写CPropertySheet,
    我是用的VC2005中CTabCtrl,界面显示一样的,代码网上查下
      

  4.   

    3、在dlg类的Oninit函数中将各page加入到CPropertySheet对象;好像这里出错了,要不你将各个page页加入到CPropertySheet的构造函数中,而不要在Oninit方法中初始化
      

  5.   

    Debug下调试一下,具体是哪里执行错误,F11进去看看
      

  6.   


    我查过2005的MSDN的,是支持的。
    而且,我也分析了附带的样例,没发现有不妥的地方。
      

  7.   


    这有什么区别呢,还不就是类层次不同而已。现在的实现是sheet和page同为一dlg的成员;在dlg的构造函数中自然会调sheet和page的默认构造函数。然后在oninitdlg中将各page加入的sheet。而你说的应该是把各page作为sheet的成员,然后在sheet的构造函数中把各page加进去。这我想是没区别的。