我正在使用C ++和MFC。我需要修改“打开文件”对话框,因此只有文件夹包含* .txt文件必须可见。有任何想法吗?
答案 0 :(得分:2)
我没有使用MFC编程的经验,但这些是我的疑问。
没有理由这样做,特别是如果要在所有可能级别上过滤文件夹。试想一下,用户打开C:
并开始扫描整个磁盘。如果这个磁盘是通过网络连接的话会更糟。
这就是为什么我怀疑MFC中存在这样的能力的原因,所以你必须编写这样的对话框,只有你决定使用一些固定的嵌套级别来过滤文件夹时才有可能。
答案 1 :(得分:-1)
使用GetOpenFileName
并相应地设置OPENFILENAME结构实例的过滤器成员。
char szFile[MAX_PATH];
OPENFILENAME ofn = {0};
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = m_hWnd;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "Text\0*.TXT\0";
ofn.nFilterIndex = 0;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
if (GetOpenFileName(&ofn)) ...