Kev*_*Day 5 winapi openfiledialog visual-c++
我们的应用程序允许在文件选择对话框中选择多个文件,该对话框通过GetOpenFileName函数显示(此问题也适用于使用CFileDialog等的用户)
可以在文件名字段中键入的字符数似乎受到限制(259似乎是魔幻数字-不知道为什么)。
我们尝试更改OPENFILENAME结构的以下成员:
lpstrFile-指向我们自己的缓冲区,大小为4K字节nMaxFile-设置为lpstrFile的大小(我们正在编译ANSI,所以实际上是4000
但是这些值似乎不会增加对话框中文件名字段的输入宽度。
我将尝试向控件发送EM_SETLIMITTEXT消息,但想知道是否还有其他解决方案。
编辑-我自己解决了这个问题:解决方案 我无法接受自己的回答,但这是后代的问题。如果其他人有更好的解决方案,请发布它-或随意修改我的解决方案,以便将来的搜索者将其放在顶部。
事实证明,编辑控件(至少在我的开发环境中)是一个组合框,因此EM_SETLIMITTEXT
不合适。
相反,我使用文件GetDlgCtrl
打开对话框的父级来跟踪组合框(我在OnInitDialog
处理程序中执行此操作),将其转换为CComboBox*
,然后调用LimitText()
以设置限制。
CB_LIMITTEXT
对于那些不使用 的人来说,这也可以通过向控件发送消息来完成CFileDialog
。这里合适的值很可能OPENFIILENAME.nMaxFile
是传入的值。
归档时间: |
|
查看次数: |
1930 次 |
最近记录: |