【发布时间】:2020-12-31 00:57:53
【问题描述】:
以下是资源管理器针对此特定 EditBrowseCtrl 显示的内容。您可以看到“浏览模式”选项设置为“文件夹浏览”。
我也尝试通过EnableFolderBrowseButton 方法启用文件夹浏览按钮,但以下只是给我一个通用的“遇到不正确的参数”异常。
CMFCEditBrowseCtrl* pEdit;
pEdit = (CMFCEditBrowseCtrl*)GetDlgItem(IDC_MFCEDITBROWSE);
pEdit->EnableFolderBrowseButton();
根据要求,这是 .rc 文件的内容:
/////////////////////////////////////////////////////////////////////////////
//
// Dialog Info
//
IDD_PREFERENCES_PROPPAGE DLGINIT
BEGIN
IDC_MFCLINK1, 0x37c, 175, 0
0x4d3c, 0x4346, 0x694c, 0x6b6e, 0x555f, 0x6c72, 0x733e, 0x7379, 0x616c,
0x2e74, 0x6f63, 0x3c6d, 0x4d2f, 0x4346, 0x694c, 0x6b6e, 0x555f, 0x6c72,
0x3c3e, 0x464d, 0x4c43, 0x6e69, 0x5f6b, 0x7255, 0x506c, 0x6572, 0x6966,
0x3e78, 0x7468, 0x7074, 0x3a73, 0x2f2f, 0x2f3c, 0x464d, 0x4c43, 0x6e69,
0x5f6b, 0x7255, 0x506c, 0x6572, 0x6966, 0x3e78, 0x4d3c, 0x4346, 0x694c,
0x6b6e, 0x545f, 0x6f6f, 0x746c, 0x7069, 0x3c3e, 0x4d2f, 0x4346, 0x694c,
0x6b6e, 0x545f, 0x6f6f, 0x746c, 0x7069, 0x3c3e, 0x464d, 0x4c43, 0x6e69,
0x5f6b, 0x7546, 0x6c6c, 0x6554, 0x7478, 0x6f54, 0x6c6f, 0x6974, 0x3e70,
0x4146, 0x534c, 0x3c45, 0x4d2f, 0x4346, 0x694c, 0x6b6e, 0x465f, 0x6c75,
0x546c, 0x7865, 0x5474, 0x6f6f, 0x746c, 0x7069, "\076"
IDC_MFCEDITBROWSE, 0x37c, 42, 0
0x4d3c, 0x4346, 0x6445, 0x7469, 0x7242, 0x776f, 0x6573, 0x4d5f, 0x646f,
0x3e65, 0x3c32, 0x4d2f, 0x4346, 0x6445, 0x7469, 0x7242, 0x776f, 0x6573,
0x4d5f, 0x646f, 0x3e65,
0
END
非常感谢任何帮助。
【问题讨论】:
-
使用准系统 MFC 对话框不会重复该问题,因此在未显示的代码的其他地方必须存在差异。见How to create a Minimal, Reproducible Example。
-
你好@dxiv。如有必要,我可以暂时将项目公开。这似乎是我能够解决这个问题的唯一方法,因为我需要在我当前的代码库中修复这个问题,而且我不知道问题可能出在哪里。
-
能否请您从对话框资源文件中显示控件的 RC sn-p?
-
我看到了这个:stackoverflow.com/questions/46362484/…。出于兴趣,您使用的是
CWinApp还是CWinAppEx? -
观察一下,你显示的RC数据并不是对话框上的实际控制,而是初始化数据。对话框本身的实际控制看起来有点像文件中的
CONTROL "",IDC_MFCEDITBROWSE,"MfcEditBrowse",WS_BORDER | WS_TABSTOP | 0x80,17,51,330,14。它位于 RC 的不同位置。但不用担心。 :)
标签: visual-c++ mfc afx