CMFCEditBrowseCtrl 闪烁的按钮图标
Posted
技术标签:
【中文标题】CMFCEditBrowseCtrl 闪烁的按钮图标【英文标题】:CMFCEditBrowseCtrl flickering button icon 【发布时间】: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://imgur.com/a/qSXDYej
我创建了一个空的对话框项目,将控件拖入并简单运行:
https://imgur.com/a/3i8xfq6
闪烁。
项目的临时链接:
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 闪烁只在右边的图标上。
【参考方案1】:
更改为深色主题,仍然没有闪烁。试过 64 和 32 构建调试和发布,没有闪烁。 这就是我能做的所有事情,而没有能力复制这个问题。对不起。
我会检查是否有任何最近安装的在后台运行的应用程序或最近更新的驱动程序导致了它。尝试以安全模式重新启动 Windows。
【讨论】:
谢谢。我会在安全模式下尝试并报告。 嗨。我将 Windows 11 启动到安全模式,它没有闪烁。然后我正常重新启动,它似乎没问题。至少发布版本(在 VS Studio 环境之外)。以上是关于CMFCEditBrowseCtrl 闪烁的按钮图标的主要内容,如果未能解决你的问题,请参考以下文章
是否可以更改 CMFCEditBrowseCtrl 控件的背景颜色?