none
如下代码结果为什么不一样?? RRS feed

  • 常规讨论

  • CWnd m_wnd1;
    m_wnd.Create(NULL, NULL, WS_CHILD|WS_VISIBLE, CRect(0,0,100,100), this, 0);
    LOGFONT lfWnd;
    CFont * pFtWnd = m_wnd.GetFont();
    //pFtWnd->GetLogFont(&lfWnd);
    // 结果:pFtWnd为空


    CListCtrl m_listCtrl;
    m_listCtl.Create(WS_CHILD|WS_VISIBLE|LVS_REPORT, CRect(0,0,300,50), this, 0);
    CFont * pFtListCtrl = m_listCtl.GetFont();
    LOGFONT lfListCtrl;
    pFtListCtrl->GetLogFont(&lfListCtrl);
    // lfListCtrl.lfFaceName 为“微软雅黑”


    CTabCtrl m_tabCtrl;
    m_tabCtrl.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,200,100), this, 0);
    CFont * pFtTabCtrl =  m_tabCtrl.GetFont();
    LOGFONT lfTabCtrl; 
    pFtTabCtrl->GetLogFont(&lfTabCtrl);
    // lfTabCtrl.lfFaceName的值为"System"


    在同一个系统中获取的字体怎么都不是一样的??
    我也没有做任何其他操作。。


    2011年11月28日 7:01

全部回复

  • 我在注册表

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize

    找到GUIFont.Facename的值为Simsun,和

    LOGFONT lf3;

    memset(&lf3, 0, sizeof(LOGFONT));

    ::GetObject((HFONT)GetStockObject(SYSTEM_FONT), sizeof(lf3), &lf3);

    获取的lf3.lfFaceName的值是一样的。都是Simsun字体。。

     

     

    2011年11月28日 8:26