网上有些说法是由MFC界面上直接删除控件而代码里面没有删除相关变量引起的,我亲测过,并非如此,如下是正确的解决方法!!!
SetTemplate是CFileDialog重载打开文件对话框需要用到的一个函数,在VS2015开发环境下,CFileDiaolog()函数最后一个默认参数要注意,否则程序无法执行下去。
即bVistaStyle = TRUE要把这个参数值置为False。CFileDialog的函数原型如下:将其最后一个默认的参数变成True就可以解决问题!
CFileDialog(
BOOL bOpenFileDialog,
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL,
DWORD dwSize = 0,
BOOL bVistaStyle = False /*TRUE*/
//默认为True;设置为flase即可解决报错的问题
);