在母对话框上放个CTabCtrl:m_Tab;在m_Tab上再放一个CTabCtrl:m_Tab1;从CDHtmlDialog派生一个类:CDlgHtml;将CDlgHtml的属性Style设置为Child,Border为none;声明一个CDlgHtml的对象指针:m_pDlgHtml;m_DlgHtml被创建成m_Tab1的一页。
就这样一个程序,一运行就崩溃,试验了无数次,同样的问题。环境是vs2008.BOOL CDialog1::OnInitDialog()
{
CDialog::OnInitDialog(); // TODO:  在此添加额外的初始化
m_Tab1.InsertItem(0,_T("Second Tab")); m_DlgHtml=(CDlgHtml *)new CDlgHtml;
m_DlgHtml->Create(IDD_DLGHTML,&m_Tab1);//程序调试在此处终崩溃 CRect rect;
m_Tab1.GetClientRect(rect);
rect.top+=20; m_DlgHtml->MoveWindow(rect);
m_DlgHtml->ShowWindow(SW_SHOW);
return TRUE;  // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}我的代码放在:
http://www.namipan.com/d/o.rar/f05e19c44c2878d381453df66c8c00891cb43ecc26dd3c00

解决方案 »

  1.   

    你的代码我下载不到。
    可能的原因是IDD_DLGHTML:
    IDD_DLGHTML资源必须是一个合法的对话框资源,即使它上面没有任何控件。如果在对话框资源上已经放置了浏览器控件,确保这个控件的ID是AFX_IDC_BROWSER。
      

  2.   

    代码我放在了新浪上,这次应该不会有问题,麻烦你帮忙看看:
    http://xianexs.mail.qq.com/cgi-bin/downloadfilepart/svrid216/o.rar?svrid=216&fid=bd323d9589260798e1037a443c9621cf9ba6ced26e868562&&txf_fid=2705015f393eb60a350a51fea89b0a06a15d6c10&&txf_sid=aca74715f78e316697eaab18fd6e9aefbaffa42f提取码是c48053d0你上面所说的问题,是没有问题的,IDD_DLGHTML只是个系统生成的CDHtmlDialog对话框,我只是改了style和border属性,并未做其他任何调整。
      

  3.   

     return TRUE;  // return TRUE unless you set the focus to a control
        // 异常: OCX 属性页应返回 FALSE
    仔细看看这句
    这里改为return FALSE就行了
      

  4.   

    我从来没遇到过像你这么强悍的人,这个问题我花了好大代价问了N多所谓的高手,都没搞定,到你这里就解决了,哈哈,郁闷了好几天啊。
    但是我还不太了解问什么应该用return FALSE.
      

  5.   

    而且为什么如果我把m_DlgHtml放到第一个CTabCtrl上,没有return FALSE都没有问题,但是放到第二个CTabCtrl上就会出现问题??
      

  6.   

    CDialog::OnInitDialog virtual  BOOL OnInitDialog( );Return Value
    Specifies whether the application has set the input focus to one of the controls in the dialog box. If OnInitDialog returns nonzero, Windows sets the input focus to the first control in the dialog box. The application can return 0 only if it has explicitly set the input focus to one of the controls in the dialog box.从MSDN上给出的解释来看,当你把m_DlgHtml放到第二个CTabCtrl上时,焦点就在第二个TabCtrl上了,所以应该return FALSE。如果是放入的第一个TabCtrl中,程序默认焦点落在第一个TabCtrl上,于是返回TRUE就没啥问题。个人的理解,不知道对不对。
      

  7.   

    再来罗嗦两句,lz以后源码打包的时候别把临时文件如.ncb,.aps之类的打进去,这样就小多了,你的工程压缩后应该不到50k