我现在使用CFileDialog.lpstrInitialDir设置了初始路径,但我同时想让文件选择范围只能在这个路径下面,不知道如何实现?请各位大虾帮忙!

解决方案 »

  1.   

    建议使用CFileFind+ListCtrl自行实现
      

  2.   

    呵呵,比较麻烦,需要派生CFileDialog类,并覆盖virtual函数OnInitDone()。在这个函数中禁用掉几个会改变路径的控键。可通过GetParent()->GetDlgItem(控件码)->EnableWindow(FALSE);来实现。
    对了,还有Backspace键会将路径向上一层,所以这个键也必须要禁用掉,可用一个键盘钩子来实现。
      

  3.   

    同意!
    重载,和加限制(CFileDialog::OnFolderChange)都可以,重载相对完美一些,加限制相对简单一些。