本帖最后由 Becomly 于 2012-07-09 20:55:05 编辑

解决方案 »

  1.   

    我试了一下是正常的 VC6+Win7
      

  2.   

    谢谢heksn
    (佳宁),我用的vs2008+xp。但是程序在win7下就会出现这个问题。
      

  3.   

    我再用vs2008+win7下测试下。当多选有个快捷方式时也会出现其他文件的全路径不正确的问题。
    请教下这个是什么原因导致的呢?
      

  4.   

    加上"|OFN_NODEREFERENCELINKS"试一下
    参考这篇
      

  5.   

    多谢fronz
    (误人子弟的砖家),使用了OFN_NODEREFERENCELINKS属性后就不会进入快捷方式了。
    但是在win7下桌面下会有这样的一种情况。单个选文件11.bmp时,路径是这样,正确的。
    单个选文件时,路径也是正确的。
    但是两个一起选的时候,就会出现这种情况了。11.bmp文件路径是错误的
    这两个文件都是在桌面上。
      

  6.   

    发现用UltraEdit-32打开这两个文件时会提示:
    请问下这个打开对话框是不是也是调用了CFileDialog。
    怎么规避这样的问题呢?
      

  7.   

    如果UtraEdit也这样,那么也可能是调用同样函数的原因吧,没装win7,不熟悉。
    你可以看看是否有另外一种原因:你这两种文件是由不同用户生成的?
    win7安全性上提高,也许系统将不同权限下的文件分开识别的。
      

  8.   

    ps,如果可能,试试在win7下调试后的效果。可能会不同。
      

  9.   

    应该是CFileDialog本身的限制,UltraEdit-32针对这些限制做了校验而已。
    比如CFileDialog还不允许一次选中超过500个文件,自己写程序时不加校验选多了会挂掉。
    UltraEdit-32好像也有这个校验。
      

  10.   

    谢谢fronz
    (误人子弟的砖家)和
    godgogogo
    (天堂漫步)其实不单是UltraEdit-32会这样提示。
    当我使用ie浏览器打开一些有打开文件功能网页时,也会有这个提示框弹出来。
    我想应该在系统上就已经做过这样的校验了。
    所以我想CFileDialog可能那个属性可以支持这样的校验。
      

  11.   

    微软的这个CFileDialog 害死人了,我重写的CFileDialog类,在Win7下怎么也运行不出来效果
      

  12.   

    谁有办法重写CFileDialog类,在对话框上加一个控件。谢谢谢谢谢谢!!!!!11