我使用如下的代码动态创建按钮:对话框类的成员变量:
CButton *m_pMyButton;
按钮响应函数:
m_pMyButton = new CButton();
CRect rcBtn(0, 0, 100, 20);
m_pMyButton->Create(TEXT("Button1"),  WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON,
rcBtn, this, 1000);但是创建的按钮的字体和系统默认的不一致
如下图所示上面那个红线框住的是动态创建的
下面那个是系统默认的
系统默认的字体如图所示:请问我应该如何在
CreateFont里面设置蚕食
然后m_pMyButton->SetFont(&m_font);
才可以达到和系统里面一样大小,类型的字体

解决方案 »

  1.   

    RC文件编辑一下:FONT 9, "MS Sans Serif", 0, 0, 0x1
      

  2.   

    直接取父窗口的字体拿来用:
    m_pMyButton->SetFont(m_pMyButton->GetParent()->GetFont());
    如果你有父窗口的类变量,可以直接用:
    m_pMyButton->SetFont(pmyXXXWnd->GetFont());
      

  3.   

    CClientDC dc(this);
       CFont l_font;
       LOGFONT lf;
       lf.lfHeight = 12;
       strcpy(lf.lfFaceName, "Arial"); // Need a face name "Arial". 
       l_font.CreateFontIndirect(&lf); 
       CFont* l_old_font = dc.SelectObject(&l_font); 
       ............省略号里面用你的set
       dc.SelectObject(l_old_font); 
       // Delete the font object.
       l_font.DeleteObject(); 
      

  4.   

    直接GetFont然后SetFont这个效果最好。自己建立Font会对应不上