翻出来去年的笔记,暂存一下。
首先,这是一个MFC的Bug,解决时间暂时还不确定,临时的方案如下:
App在InitInstance中加入:LOGFONT logfont = {0};
:: SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &logfont, 0);
afxGlobalData.SetMenuFont(&logfont,true);
这是因为字体的设置保存在一个全局变量afxGlobalData中,此变量定义AfxGlobals.h中。AFX_GLOBAL_DATA中有一个SetMenuFont可以设定字体属性,影响Menu、Toolbar、Dock Pane等的caption字体。但是这个设置对tooltip无影响,临时解决:在上面代码基础上在加入
if(afxGlobalData.fontTooltip.GetSafeHandle() != NULL)
{
::DeleteObject(afxGlobalData.fontTooltip.Detach());
}
afxGlobalData.fontTooltip.CreateFontIndirect(&logfont);

本文介绍了一个MFC中的Bug及其临时解决方案。通过调整全局变量afxGlobalData中的字体设置,可以解决菜单、工具栏和停靠窗格标题字体的问题,并提供了一个额外的步骤来解决提示工具的字体显示问题。
1540

被折叠的 条评论
为什么被折叠?



