MFC中用DoModal这个函数可以很方便创建模态对话框,但是有一个缺点是鼠标除了能选择这个界面外,UG上不能有任何的操作。
可以用如下方式创建非模态对话框,但会发现界面一闪而过,界面还没出来。
CSearchDlg* theSearchDlg=new CSearchDlg();
if (theSearchDlg!=NULL)
{
theSearchDlg->DoModal();
theSearchDlg->Create(IDD_DIALOG_SEARCH);
theSearchDlg->ShowWindow(SW_NORMAL);
}
原因是ug的卸载函数设置不对
extern int ufusr_ask_unload( void )
{
return( UF_UNLOAD_IMMEDIATELY );
}
因为是运行完立即卸载所以界面也就没了
所以可以把这个改为
extern int ufusr_ask_unload( void )
{
return( UF_UNLOAD_SEL_DIALOG );
}
就可以看到界面了!
但这样的一个不好之处是 重新编译时必须要重新关掉已经打开的UG。