在App类的CxxxApp::OnFileOpen()方法里不要调用CWinApp::OnFileOpen,而是调用自己的文件选择框取得文件路径,然后调用CWinApp::OpenDocumentFile打开文件。
如下:
void CMyPrjEditDemoApp::OnFileOpen()
{
// TODO: Add your command handler code here
//下面是自己添加的文件打开对话框
CFileDialog dlg(TRUE);
int structsize = 0;
DWORD dwVersion,dwWindowsMajorVersion,dwWindowsMinorVersion;
dwVersion = GetVersion();
dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
if(dwVersion<0x80000000)
structsize=88;
else
structsize=76;
//
GISENV* env = _GetEnv();
dlg.m_ofn.lpstrInitialDir = env->cur;
dlg.m_ofn.lStructSize = structsize;
dlg.m_ofn.lpstrFilter = "工程文件(*.mpj)\0*.mpj\0所有文件(*.*)\0*.*\0\0";
if(IDOK == dlg.DoModal())
{
CString path = dlg.GetPathName();
//调用CWinApp::OpenDocumentFile(),将路径传递进去
CWinApp::OpenDocumentFile(path.GetBuffer(path.GetLength()));
}
}