CFont m_font;  
m_font.CreateFont(-15,0,0,0,400,0,0,0,134,3,2,1,2,_T("Arial")); ////循环体:
mycheck[num] = new CButton;
mycheck[num]->Create(strTmp,BS_CHECKBOX
|WS_VISIBLE|WS_CHILD|BS_AUTOCHECKBOX, 
CRect(left,h*20,left+l,h*20+20), this, num+500);
mycheck[num]->SetCheck(1);
mycheck[num]->SetFont(&m_font,1);如上
这样动态建立的控件无论如何设置字体都是vc++6默认的粗黑的字体,有什么窍门呢,最好贴出确切的代码.急盼啊!!!

解决方案 »

  1.   

    m_font必须是成员变量,否则字体无效//循环体:
    SetFont(&m_font, 1);
    mycheck[num] = new CButton;
    mycheck[num]->Create(strTmp,BS_CHECKBOX
    |WS_VISIBLE|WS_CHILD|BS_AUTOCHECKBOX, 
    CRect(left,h*20,left+l,h*20+20), this, num+500);
    mycheck[num]->SetCheck(1);
    这样就可以
      

  2.   

    按您所示不可以的//头文件:
    class CGetmoDlg : public CDialog
    {
    // Construction
    public:
    CGetmoDlg(CWnd* pParent = NULL); // standard constructor
    CFont   m_font;   //设m_font为对话框的成员//c++:while(txtFile.ReadString(strTmp))  
    {  
    if(num==20)
    {
    left=left+170;
    h=0;l=160;
    }
    SetFont(&m_font,1);
    mycheck[num] = new CButton;
    mycheck[num]->Create(strTmp,BS_CHECKBOX
    |WS_VISIBLE|WS_CHILD|BS_AUTOCHECKBOX, 
    CRect(left,h*20,left+l,h*20+20), this, num+500); //创建按钮
    mycheck[num]->SetCheck(1);
      

  3.   

    CFont m_font;
    这个不会是局部变量吧.