CFileDialog file name validating

LorenLiu 2009-10-19 04:32:11
我发现了CFileDialog一个问题,就是在构造一个CFileDialog时,如果第一个参数设置的是true,那么得到的是Open file dialog,在显示该对话框后,如果在文件名中输入">"就会提示该文件名是一个非法的文件名,但是如果第一个参数设置的是false,得到的Save file dialog,却可以支持">"的输入。请问是否有什么参数可以设置使得Save File Dialog同样不支持">",即也能提示该文件名不合法,谢谢。
...全文
87 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
LorenLiu 2009-10-19
  • 打赏
  • 举报
回复
谢谢各位大虾,结贴
tsocpp 2009-10-19
  • 打赏
  • 举报
回复
好像重写该函数是最快最简便的方法了吧
快乐鹦鹉 2009-10-19
  • 打赏
  • 举报
回复
应该可以。在OK之前判断。或者直接截获键盘输入,确定在文件名框输入时禁止>字符的输入。
LorenLiu 2009-10-19
  • 打赏
  • 举报
回复
这么说,还是要继承CFileDialog咯~~

是否重写OnFileNameOK方法就可以了呢?
LorenLiu 2009-10-19
  • 打赏
  • 举报
回复
哦~~就是等于自己拿到那个对话框里的TextBox的对象,是吧?

各位大虾,除了这样子外没有更加简单点的办法吗?比如对CFileDialog的对象属性做点调整之类的。。。
MoXiaoRab 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lorenliu 的回复:]
To Tr0j4n and happyparrot,

我的需求是在不关闭Dialog的情况下进行validate,所以等Save后得到Path再去validate已经晚了。。。

To fishion,

我不是很明白“取得那个编辑框,对其进行子类化,编辑框ID是1152”这句话的意思,你是希望我去继承CFileDialog吗?
[/Quote]
唉,你没明白我的意思,我让你派生自己的CFileDialogEx呢
快乐鹦鹉 2009-10-19
  • 打赏
  • 举报
回复
最佳的办法是派生子类了。这个好像也比较简单。其它方法难以满足你的要求了。
要不搞个什么钩子??只怕你更痛苦。
dirdirdir3 2009-10-19
  • 打赏
  • 举报
回复
我不是很明白“取得那个编辑框,对其进行子类化,编辑框ID是1152”这句话的意思,你是希望我去继承CFileDialog吗?


不是,子类话就是自己处理那个窗口的消息..........
LorenLiu 2009-10-19
  • 打赏
  • 举报
回复
To Tr0j4n and happyparrot,

我的需求是在不关闭Dialog的情况下进行validate,所以等Save后得到Path再去validate已经晚了。。。

To fishion,

我不是很明白“取得那个编辑框,对其进行子类化,编辑框ID是1152”这句话的意思,你是希望我去继承CFileDialog吗?
快乐鹦鹉 2009-10-19
  • 打赏
  • 举报
回复
在调用CFileDialog的模块中,获得这个串后自己做个Find就行了,否则就派生子类进行检查吧。
fishion 2009-10-19
  • 打赏
  • 举报
回复
取得那个编辑框,对其进行子类化,编辑框ID是1152
MoXiaoRab 2009-10-19
  • 打赏
  • 举报
回复
保存的时候,自己判断下文件名好了呀
fishion 2009-10-19
  • 打赏
  • 举报
回复
取得那个编辑档,对其进行子类化

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧