none
Visual studio 2008 Feature Pack生成的MFC程序,标题字体被改 RRS feed

答案

  • 使用下面语句可完全解决问题,谢谢楼上各位。

     LOGFONT logfont = {0};
     :: SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &logfont, 0);

    afxGlobalData.SetMenuFont(&logfont,true);

     

    2008年10月21日 10:38

全部回复

  • 没人知道是怎么回事吗?

    2008年9月10日 3:55
  • 你好!
        详细说说你的系统环境和开发环境。
    2008年9月10日 12:35
    版主
  • 环境:WinXP sp3 + Visual Studio 2008 SP1 + Office2007

    谢谢

    2008年10月9日 8:50
  • 的确不好看,你试试修改那些Feature Pack控件的字体,可能默认的字体不是宋体。
    2008年10月9日 16:00
    版主
  • 加入如下红色代码,重新创建一下系统默认字体

    BOOL CMYApp::InitInstance()
    {
        afxGlobalData.fontRegular.DeleteObject();
        afxGlobalData.fontRegular.CreateFont(
            12,                        // nHeight
            0,                         // nWidth
            0,                         // nEscapement
            0,                         // nOrientation
            FW_NORMAL,                 // nWeight
            FALSE,                     // bItalic
            FALSE,                     // bUnderline
            0,                         // cStrikeOut
            ANSI_CHARSET,              // nCharSet
            OUT_DEFAULT_PRECIS,        // nOutPrecision
            CLIP_DEFAULT_PRECIS,       // nClipPrecision
            DEFAULT_QUALITY,           // nQuality
            DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
            _T("宋体"));

        // 如果一个运行在 Windows XP 上的应用程序清单指定要
     // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
     //则需要 InitCommonControlsEx()。否则,将无法创建窗口。
     INITCOMMONCONTROLSEX InitCtrls;
     InitCtrls.dwSize = sizeof(InitCtrls);
     // 将它设置为包括所有要在应用程序中使用的
     // 公共控件类。
     InitCtrls.dwICC = ICC_WIN95_CLASSES;
     InitCommonControlsEx(&InitCtrls);

     CWinAppEx::InitInstance();

     

    .............

    }

    2008年10月11日 13:34
  • 谢谢楼上各位,在网上查询发现这是缺陷,详见http://blog.csdn.net/codewarrior/archive/2008/09/11/2911209.aspx

     

    使用rambowen的方法后、菜单栏、工具条的字体已经正确,但tab控件中表项的标题("Test1","生成","调试","查找"等)的字体仍旧没有改变。

     

    继续寻求帮助。

     

     

    2008年10月13日 10:02
  • 使用下面语句可完全解决问题,谢谢楼上各位。

     LOGFONT logfont = {0};
     :: SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &logfont, 0);

    afxGlobalData.SetMenuFont(&logfont,true);

     

    2008年10月21日 10:38