MFC - 更改 CDialogEx 控件中使用的 CMFCToolTipCtrl 中的字体

Posted

技术标签:

【中文标题】MFC - 更改 CDialogEx 控件中使用的 CMFCToolTipCtrl 中的字体【英文标题】:MFC - Change font in a CMFCToolTipCtrl used in CDialogEx control 【发布时间】:2016-12-02 10:19:46 【问题描述】:

我正在尝试在我的对话框中显示 CStatic 派生控件的工具提示。

我已经做了什么:

    向我的 CDialogEx 成员添加了 CMFCToolTipCtrl 项。 在初始化对话框成员中,我指定了 CMFCToolTipInfo 结构并将其作为参数传递给 CMFCToolTipCtrl 项构造函数。 调用 EnableToolTips();我的 CStaticExts 和 CDialogEx 的成员。 覆盖了我的 CDialogEx 的 PreTranslateMessage,添加了“RelayEvent”。 在资源编辑器中设置“通知:TRUE”。

这样做我设法以部分自定义的方式(气球和背景颜色)显示工具提示,但现在我想放大字体,使其变为粗体,并最终显示一个图标,类似于我可以使用的工具提示在我的工具栏上查看。

我已经尝试为 CMFCToolTipCtrl 项调用“SetFont”和“SetIcon”方法,但没有成功。

这可能吗?

【问题讨论】:

【参考方案1】:

CMFCToolTipCtrl 中使用的普通字体是从 MFC 内的全局数据存储中检索的(请参阅 GetGlobalData()->fontTooltip)。这个数据结构 AFX_GLOBAL_DATA 在 MFC 启动时被填充。 SetFont 在这里不起作用。

如果你想改变你必须创建自己的 CMFCToolTipCtrl 类并覆盖 OnDrawLabel 的行为。您拥有 MFC 的源代码,因此很容易提供您自己的实现。

【讨论】:

以上是关于MFC - 更改 CDialogEx 控件中使用的 CMFCToolTipCtrl 中的字体的主要内容,如果未能解决你的问题,请参考以下文章

MFC设置对话框背景色及控件颜色

特定对话框控件的 MFC SetFont 不起作用

在类构造函数中使用 MFC 按钮控件 EnableWindow 方法时“调试断言失败”

我正在尝试使用 MFC 在列表控件上显示 SQL 结果

MFC中运行出现问题“不支持尝试执行的操作”

如何在 listcontrol mfc 中编辑单元格?