读书人

OCX 二次创设窗口崩溃

发布时间: 2013-01-11 11:57:35 作者: rapoo

OCX 二次创建窗口崩溃
本帖最后由 chengwei_zhang1225 于 2012-11-14 17:01:07 编辑 背景:
在OCXCtrl.cpp中 OnCreate()创建一个对话框(嵌入式 Child形)

int CVMC_OCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
m_VMCDlg.Create(IDD_MAINDLG,this);
m_VMCDlg.ShowWindow(SW_SHOW);
return 0;
}


这个当然能show出来

然后在响应web中一个按钮时我新建一个对话框(弹出式 Popup型)

void CVMC_OCXCtrl::StartPlayJump(LPCTSTR fdid, LONG chanlid)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

if(m_JumpDlg.g_JumpDestoryed)
{
g_WndFlag = 0;
}

g_WndFlag++;

if (g_WndFlag<0 )
{
AfxMessageBox("窗体编号ERROR");
}
else if(g_WndFlag>16)
{
MessageBox("最大为16路视频","提示");
}

switch (g_WndFlag)
{
case 1:
m_JumpDlg.Create(IDD_JUMPPLAY_DLG,this);
m_JumpDlg.ShowWindow(SW_SHOW);
m_JumpDlg.MoveWindow(0,0,500,450,TRUE);//创建弹出播放框口 m_JumpDlg.proInitWndPlayInfo_jump(fdid,chanlid,g_WndFlag-1);
m_JumpDlg.StartJumpVideo();

break;
case 2:
.....

}


这个第一次响应是可以弹出来的 也能显示视频
但是当我关闭这个窗口 再次点击时就崩溃了。。。这是为什么啊?

是不是 关闭时资源没释放,导致再次点击创建时崩溃?
[解决办法]
如果可能,给出代码测试代码

读书人网 >VC/MFC

热点推荐