【发布时间】:2021-12-31 09:53:32
【问题描述】:
这里有类似的问题 (https://forums.codeguru.com/showthread.php?540443-CMFCEditBrowseCtrl-flickering-button-icon)。
我的对话框有一个简单的控件:
简单的对话框:
IDD_DIALOG_IMPORT_FROM_CLM_EXPLORER DIALOGEX 0, 0, 309, 176
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Import from CLM Explorer"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,198,155,50,14
PUSHBUTTON "Cancel",IDCANCEL,252,155,50,14
LTEXT "Language:",IDC_STATIC,7,39,35,8
LISTBOX IDC_LIST_LANGUAGE,7,54,142,115,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
LTEXT "Students Database (CSV):",IDC_STATIC,7,7,85,8
CONTROL "",IDC_STUDENT_DATABASE,"MfcEditBrowse",WS_BORDER | WS_TABSTOP | 0x880,7,18,295,14
END
在OnInitDialog中映射到标准控件并自定义的变量:
m_browseStudentDB.EnableFileBrowseButton(_T("CSV"), _T("*.CSV|*.CSV||"), OFN_FILEMUSTEXIST);
- Windows 11
- Visual Studio 2022
示例录音来解释我所看到的:
我创建了一个空的对话框项目,将控件拖入并简单运行:
闪烁。
项目的临时链接:
https://www.dropbox.com/s/kskhzntg3l4103u/MFCApplication9.zip?dl=0
【问题讨论】:
-
如果你用
EDITTEXT IDC_STUDENT_DATABASE, 7,18,295,14, WS_BORDER | WS_TABSTOP | 0x880替换你的CONTROL...资源会发生什么? (不确定 0x880 做了什么——也许你可以澄清一下?) -
@AdrianMole 它不是“编辑”控件。 If 是“MFC 编辑浏览”控件,因此它具有额外的设置,例如 IDE 中的“浏览模式”。我猜它的价值是什么。虽然我在代码中覆盖了它,因为我需要设置文件类型过滤器。只需将这种类型的控件拖入您的对话框中并在不做任何更改的情况下运行它,然后将鼠标移到该控件上。
-
我知道区别。但是,在我的项目中,我将
EDITTEXT资源用于CMFCEditBrowseCtrl控件;我什至添加了“编辑框”样式,例如ES_LEFT|ES_AUTOHSCROLL,并且这些样式已正确应用。 -
我刚刚尝试在一个虚拟对话框项目中添加这样的控件。我看不到闪烁 - 但我使用的是 Windows 10 和 VS2019。可能是系统 DLL 或 VC 可再发行问题?
-
@AdrianMole 闪烁只在右边的图标上。
标签: visual-c++ mfc visual-studio-2022