15,980
社区成员
发帖
与我相关
我的任务
分享
INT_PTR DoModal(HWND hWndParent = ::GetActiveWindow())
{
ATLASSERT((m_ofn.Flags & OFN_ENABLEHOOK) != 0);
ATLASSERT(m_ofn.lpfnHook != NULL); // can still be a user hook
ATLASSERT((m_ofn.Flags & OFN_EXPLORER) != 0);
if(m_ofn.hwndOwner == NULL) // set only if not specified before
m_ofn.hwndOwner = hWndParent;
ATLASSERT(m_hWnd == NULL); //此处为何是NULL???
ModuleHelper::AddCreateWndData(&m_thunk.cd, (ATL::CDialogImplBase*)this);
BOOL bRet;
if(m_bOpenFileDialog)
#if defined(__AYGSHELL_H__) && (_WIN32_WCE >= 0x0501)
bRet = ::GetOpenFileNameEx(&m_ofn);
else
bRet = ::GetSaveFileName((LPOPENFILENAME)&m_ofn);
#else
bRet = ::GetOpenFileName(&m_ofn);
else
bRet = ::GetSaveFileName(&m_ofn);
#endif
m_hWnd = NULL;//此处为何设置为NULL???
//太坑了,好多Get开头的函数都有断言ATLASSERT(::IsWindow(m_hWnd));
return bRet ? IDOK : IDCANCEL;
}
int GetFilePath(LPTSTR lpstrFilePath, int nLength) const
{
ATLASSERT(::IsWindow(m_hWnd)); //断言m_hWnd = 0
ATLASSERT((m_ofn.Flags & OFN_EXPLORER) != 0);
return (int)GetFileDialogWindow().SendMessage(CDM_GETFILEPATH, nLength, (LPARAM)lpstrFilePath);
}
CFileDialog dlg(TRUE);
if(dlg.DoModal() == IDOK)
{
m_strGSMFilePath= dlg.GetPathName();
SetDlgItemText(IDC_EDIT_GSMFILE,m_strGSMFilePath);
}