0

我正在使用 C++ 和 MFC。我需要修改打开文件对话框,因此只有包含 *.txt 文件的文件必须可见。有任何想法吗?

4

2 回答 2

2

我没有任何使用 MFC 编程的经验,但这些都是我的疑问。

没有理由这样做,特别是如果您要过滤所有可能级别的文件夹。想象一下用户打开C:并且您的程序开始扫描整个磁盘。如果这个磁盘是通过网络连接的,那就更糟了。

这就是为什么我怀疑 MFC 中有这样的能力的原因,所以你必须编写这样一个对话框,并且只有当你决定只使用一些固定级别的嵌套来过滤文件夹时才有可能。

于 2013-01-09T16:58:26.707 回答
-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)) ...
于 2013-01-16T15:12:41.747 回答