今天在使用CFileDialog选择文件的时候,发现文件的类型列表第一个是正常的,而第二个列表却出现了乱码,最后发现是我Filter参数的问题,下面给出解决方案。
错误原形
CFileDialog fileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT, _T("All Files(*.*)|*.*"));
上面的代码目测是没有神马问题的,然而_T(“All Files(*.*)|*.*”) 这个Filter的写法是错误的,下面是正确的原型。
正确写法
CFileDialog fileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT, _T("All Files(*.*)|*.*||"));
错误原因,Filter的写法不对,最后一个Filter后面依然需要双竖线‘||’结尾。
转载请注明:悠然品鉴 » MFC,CFileDialog文件类型乱码的解决方案