CWnd* pWnd=GetDlgItem(IDC_SET_FONT);
CFont   font;
                               //FW_NORMAL  FW_BOLD  DEFAULT_CHARSET
int result=font.CreateFont(3,0,0,0,1000,0,0,0,GB2312_CHARSET,OUT_CHARACTER_PRECIS,
CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_DONTCARE,_T("黑体"));//Times New Roman
pWnd->SetFont(&font);
  以上代码加入到BOOL CTest_owndrawDlg::OnInitDialog()中去了。
但是,每次修改CreateFont的第一个参数,也就是字体的高度的时候,修改以后跟修改以前的效果是一样的。
也就是说不论第一个参数是多少,字体的大小都是一样的。不过,这段代码确实改变了字体,因为把它注释掉以后
字体跟没有被注释以前大小不一样。
  我现在想把字体改得更大点。应该怎么做呢。谢谢。
  有经验的朋友,如果愿意的话,麻烦留下qq号码好吗
  小女子感激不尽了。
  这个问题一个晚上了,还是没有解决。

解决方案 »

  1.   

    感觉原因可能为这个:OninitialDialog时对话框并没有创建,其子窗口也没有,所以pWnd值应该为空,SetFont不会成功。
      

  2.   

    CFont   font;做成对话框的成员变量试一试
    放在CDialog::OninitDialog后面就可以了
      

  3.   

    ===============================================================
    在构造函数中如下: newFont不可以局部变量,全局或成员变量
    newFont.CreateFontW( 20, 0, 0, 0,
                         FW_NORMAL, FALSE, FALSE, 0,
         ANSI_CHARSET, 0, 0,0,
                                 0, _T("MingLiU") );
    CDialog::OninitDialog()
    {
          xxxx
          Wndhandle->SetFont(&newFont, TRUE)
          xxxx
    }
    ===============================================================
    这样就可以了