代码如下:
INT_PTR AstroDialog::DoModalIndirect()
{
DLGTEMPLATE dlgTemp;
memset((void*) &dlgTemp, 0, sizeof(DLGTEMPLATE));
InitModalIndirect(&dlgTemp);
return DoModal();
}
另外,客户程序的父窗口创建一条线程,调用静态库中的上述方法创建一个父窗口为NULL的对话框,居然也会把客户程序的窗口Disable掉……
但是,在静态库内调用此方法前,执行一次AFX_MANAGE_STATE(AfxGetStaticModuleState());即不会Disable客户程序窗口,可能是在没有转换ModuleState之前,以NULL为父的对话框都会Disable MainWindow(客户程序窗口)吧?转换后,没有父窗口,那就以桌面为父,就不会Disable客户窗口了。