我程序在一个tab control的其中一个页面加上了第三方的一个控制ActiveX control,运行出现了winocc.cpp,279 行断言错误,
winocc.cpp279行的内容为:
void CWnd::MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint)
{
ASSERT(::IsWindow(m_hWnd));//279 if (m_pCtrlSite == NULL)
::MoveWindow(m_hWnd, x, y, nWidth, nHeight, bRepaint);
else
m_pCtrlSite->MoveWindow(x, y, nWidth, nHeight, bRepaint);
}我的程序是这样的:
BOOL CZhicao::OnInitDialog() 
{
CDialog::OnInitDialog();
if(flag == 1)
{
//////////////Tab control控件初始化
m_tab.InsertItem(0, _T("柄部参数"));  //添加外形参数选项卡
m_tab.InsertItem(1, _T("刃部参数"));  //添加外形参数选项卡
m_tab.InsertItem(2, _T("沟槽参数"));  //添加周刃参数选项卡
m_tab.InsertItem(3, _T("周刃参数"));    //添加沟槽参数选项卡 
m_tab.InsertItem(4, _T("端刃参数"));  //添加端刃参数选项卡
m_tab.InsertItem(5, _T("产品信息录入"));    //添加产品信息选项卡 

//关联对话框,并且将IDC_TAB1控件设为父窗口
m_para1.Create(IDD_ZCJDWAIXIN, GetDlgItem(IDC_TAB1));
m_para2.Create(IDD_ZCJDGOUCAO, GetDlgItem(IDC_TAB1));
m_para3.Create(IDD_ZCJDZHOUREN,  GetDlgItem(IDC_TAB1));
m_para4.Create(IDD_ZCJDDUANREN, GetDlgItem(IDC_TAB1));
m_para5.Create(IDD_CANPINGXINXI, GetDlgItem(IDC_TAB1));
m_para6.Create(IDD_ZCJDBINBU, GetDlgItem(IDC_TAB1));

//获得IDC_TAB1客户区大小
CRect rs;
m_tab.GetClientRect(&rs);

//调整子对话框在父窗口中的位置
rs.top += 22; 
// rs.bottom -= 1; 
// rs.left += 1; 
// rs.right -= 1; 

//设置子对话框尺寸并移动到指定位置
m_para1.MoveWindow(&rs);
m_para2.MoveWindow(&rs);
m_para3.MoveWindow(&rs);
m_para4.MoveWindow(&rs);
m_para5.MoveWindow(&rs);
m_para6.MoveWindow(&rs);

//分别设置隐藏和显示
m_para1.ShowWindow(false);
m_para2.ShowWindow(false);
m_para3.ShowWindow(false);
m_para4.ShowWindow(false);
m_para5.ShowWindow(false);
m_para6.ShowWindow(true);
//设置默认的选项卡
m_tab.SetCurSel(0);...................
觉得应该是m_para1.MoveWindow(&rs);这里的问题,网上查了一下,说是窗口还没创建,不能用于move,但不知如何解决,谢谢各位了,

解决方案 »

  1.   


    判断  m_para1.Create(IDD_ZCJDWAIXIN, GetDlgItem(IDC_TAB1)); 
    返回值,看看是否成功?
      

  2.   

    ASSERT(::IsWindow(m_hWnd));//279 
    说明窗口没有创建好
      

  3.   

    判断Create返回值,需要多熟么?
      

  4.   

    不用判断create返回值,肯定是创建失败,我的意思是问为什么创建失败,在哪里解决?
    我在InitInstance()里面加上AfxEnableControlContainer();所有BUG解决,但是控件显示不出来,,又是什么问题?
      

  5.   

    谢谢各位了,自己解决了,在InitInstance()里面加上AfxEnableControlContainer就好了,控件显示不出来是因为被另一个控件挡住了