我在ActiveX控件中,调用了一个对话框
第一次用DoModal()调用,结果弹出的对话框,无法进行拖拉操作,如果进行此操作,貌似死机啊,并且在点击了OnOK()或者OnCancel(),销毁时会报错,在以下位置
int CDialog::DoModal()
{
....
// destroy modal window
->DestroyWindow();
PostModal();
....
}
BOOL CWnd::DestroyWindow()
{
....
#ifdef _DEBUG
->ASSERT(pMap->LookupPermanent(hWndOrig) == NULL);
#endif
....
}然后,我改用第二种方法,用Create(ID, this)创建,在点击OnOK()或OnCancel()时不报错了,可是同样有不能进行拖拉操作。
看上去好象是如果焦点一旦从对话框转移走,就无法在由对话框得到。
这个问题出在哪儿?请高手指点~~
第一次用DoModal()调用,结果弹出的对话框,无法进行拖拉操作,如果进行此操作,貌似死机啊,并且在点击了OnOK()或者OnCancel(),销毁时会报错,在以下位置
int CDialog::DoModal()
{
....
// destroy modal window
->DestroyWindow();
PostModal();
....
}
BOOL CWnd::DestroyWindow()
{
....
#ifdef _DEBUG
->ASSERT(pMap->LookupPermanent(hWndOrig) == NULL);
#endif
....
}然后,我改用第二种方法,用Create(ID, this)创建,在点击OnOK()或OnCancel()时不报错了,可是同样有不能进行拖拉操作。
看上去好象是如果焦点一旦从对话框转移走,就无法在由对话框得到。
这个问题出在哪儿?请高手指点~~
CDlgSetLinkParam dlg;
dlg.m_nType = m_nLinkType ;
dlg.m_nID = m_dwLinkID;
if(dlg.DoModal() == IDOK)
{
m_nLinkType = dlg.m_nType;
m_dwLinkID = (DWORD)dlg.m_nID;
}或者CDlgSetLinkParam* pdlg = new CDlgSetLinkParam();
pdlg->Create(IDD_SET_PARAM);
RECT rect;
rect.top = 105;
rect.left = 220;
rect.right = 780;
rect.bottom = 533;
pdlg->MoveWindow(&rect);
pdlg->ShowWindow(TRUE);
}