一个CTabCtrl控件中的页面,别的都是CDialog的普通对话框,其中一页是以CDHtmlDialog为基类的一个对话框,编译没有问题,但是在我点击与此CDHtmlDialog对应的Tab按钮时,灰色的.htm显示在电脑屏幕的左上方,而不是在CTabCtrl区域内。
在CTabCtrl所在的对话框类初始函数中我是这样创建CDHtmlDialog的,其中CDlgSurvey 派生自CDHtmlDialog:m_pDlgSurvey=(CDlgSurvey *)new CDlgSurvey;
m_pDlgSurvey->Create(IDD_DLGSURVEY,&m_TabCtrl);我这样的操作合法吗,如果合法那问题在哪里,该如何解决?

解决方案 »

  1.   

    我猜想,m_pDlgSurvey->Create(IDD_DLGSURVEY,&m_TabCtrl); 这一句代码只是将m_pDlgSurvey与.htm文件所依附的对话框建立了联系,而并没有与.htm建立联系,所以.htm就不受约束地显示了,不知道是不是,该怎么弄?
      

  2.   

    有啊,在CTabCtrl所在的对话框初始函数中我是这样做的:         CRect rect;
    m_TabCtrl.GetClientRect(rect);
    rect.top+=22;
    rect.bottom-=3;
    rect.left+=3;
    rect.right-=3;
    m_pDlgPage->MoveWindow(rect);
    m_pDlgInfo->MoveWindow(rect);
    m_pDlgWarehouse->MoveWindow(rect);
    m_pDlgSurvey->MoveWindow(rect);//在此确定位置
      

  3.   

    用一个静态文本框指定创建对话框的位置,Create()第2个参数改改 :)
      

  4.   

    我发现问题好像是这个CDHtmlDialog对话框根本没有隶属于CTabCtrl,位置上更独立于其他对话框,当母对话框移动的时候,这个 CDHtmlDialog根本不动,没受任何约束。
      

  5.   

    哈哈哈哈哈哈哈哈~~~~
    把对话框属性改成Child就可以了