0
我正在使用以下代碼片段來啓動文件夾對話框。限制用戶選擇某個特定的文件夾
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(bi));
TCHAR szDisplayName[MAX_PATH];
szDisplayName[0] = 'a';
bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDisplayName;
bi.lpszTitle = _T("Please select a folder to locate your PGA :");
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lParam = NULL;
bi.iImage = 0;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
TCHAR szPathName[MAX_PATH];
if (NULL != pidl)
{
BOOL bRet = SHGetPathFromIDList(pidl,szPathName);
if(FALSE == bRet)
{
return;
}
else
{
PGA_PATH.Clear();
PGA_PATH.SetWindowTextA(szPathName);//To set the user selected path to the text box
SetValudata(szPathName);//to save the user selected path to the file.
}
}
現在我想限制用戶限制如果用戶試圖選擇某個特定的文件夾(PGA)。
例如。 如果用戶選擇的路徑=
C:\Users\mm232\Desktop\PGA
C:\Users\mm232\Pictures\PGA
C:\Users\mm232\\PGA\Pictures
然後不允許用戶選擇的路徑或禁用選擇。
爲什麼不能:1)檢查選定的文件夾名稱,2)顯示一個消息框,3)重新顯示瀏覽對話框? –
@Roger Rowland我想禁用選擇。如果用戶想選擇這種類型的路徑,不要讓用戶選擇。 –
此[鏈接](https://msdn.microsoft.com/en-us/library/windows/desktop/bb762115(v = vs.85).aspx)解釋了要執行的操作。看看「自定義篩選」部分。這比你的proposaé更好,因爲你可以從列表中排除不需要的文件夾,所以用戶甚至不知道它們存在。 –