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 控件的背景颜色?

如何在 CMFCEditBrowseCtrl::EnableFileBrowseButton 中设置默认文件扩展名?

在 CABasicAnimation 中闪烁以进行旋转

如何使按钮闪烁或闪烁?

按下按钮时快速闪烁或闪烁 2 种随机颜色

如何在 ADF(Jdev)中使按钮中的文本闪烁(闪烁)