【问题标题】:MFC: How to Set initial value of CMFCEditBrowseCtrl object?MFC:如何设置 CMFCEditBrowseCtrl 对象的初始值?
【发布时间】:2015-05-03 22:33:55
【问题描述】:

我有一个 MFC 应用程序,我想为其添加一个对话框来浏览文件位置,使用 CMFCEditBrowseCtrl 对象。但我无法正确设置初始路径,例如“C:\程序文件\路径”。 尝试时显示中文字母。 我怎样才能做到这一点?我的代码如下:

m_pathCtrl.EnableFolderBrowseButton();
m_pathCtrl.SetWindowText(_T("C:\\Program Files\\Path"));

但它显示的是这样的 ->

如何正确显示英文路径?请指导。

【问题讨论】:

  • 构建过程中有任何警告吗?您的项目是否配置为 UNICODE 模式?
  • "配置为 UNICODE 模式?"你能告诉我如何验证吗?
  • 该信息存在于项目属性中。我无法准确指定位置,因为它取决于您使用的 Visual Studio 版本,但这应该可以为您提供一个起点。
  • 字符集设置为“使用多字节字符集”。有什么变通方法可以保持原样吗?
  • 请注意,根据我的经验,CMFCEditBrowseCtrl 只能在 Unicode 版本中正常工作。除了将项目更改为 Unicode 外,没有其他办法。该控件来自 Common Controls V6,仅支持 Unicode。

标签: c++ mfc msdn filebrowse


【解决方案1】:

出现问题是因为您使用的是 ASCII 字符集,但控件需要 Unicode。 MS 解释了如何在此处使用 ASCII 时在对话框中设置CMFCEditBrowseCtrlhttps://docs.microsoft.com/en-us/cpp/mfc/reference/cmfceditbrowsectrl-class?view=msvc-170。使用对话框编辑器在对话框中插入一个编辑控件,然后在头文件中将其类型从CEdit更改为CMFCEditBrowseCtrl

您还可以使用 SetWindowTextW 在窗口中查看正确的字符;例如,inputFilesCtrl.SetWindowTextW(L"C:\SomeDirectory");。您看到的汉字是 1 字节字符集被解释为 2 字节字符集时发生的情况。

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多