用filedialog打开一个在网络上共享的文件后,下次用filedialog打开文件时,还是默认打开那个共享文件夹,如果这个文件夹已经取消了共享,filedialg就会弹出一个警告框说网络不可访问,确认后才会转到桌面目录,求教如何不弹出这个警告框自动转到本地目录?
我试过在CFileDialog::m_ofn里设置了flag的OFN_SHAREAWARE和OFN_EXPLORER,OFN_ENABLEHOOK并且指定了回调函数lpfnHook但是我再回调函数中得不到msdn中所说的共享出错的消息CDN_SHAREVIOLATION ,并且在回调函数中返回无论OFN_SHAREFALLTHROUGH和OFN_SHARENOWARN,filedialog还是会弹出警告框请各位高手指点

解决方案 »

  1.   

    有一个很笨的方法, 就是在调用了filedialog之后, 无论发生什么, 都只要将程序的工作路径重新设回来就可以了.具体你可以在调用filedialog之前取得程序的工作路径, 然后在filedialog之后在将工作路径设置为前面取得的那个路径即可.这样下次再打开filedialog时, 她就会自动转到程序的当前工作目录了(当然你也可以设置为其他的路径).其实filedialog回改变程序的工作路径, 而filedialog缺省时就是打开程序的工作路径, 所以会出现你一开始的那样的情况的.而你只要阻止这种行为就可以了.
      

  2.   

    dlg.m_ofn.lpstrInitialDir = "c:\\";
    指回来