不管什么程序,都是一样的
自己用CreateFont 或 CreateFontIndirect()创建一个特殊字体,然后使用
SelectObject(&YourFont)就可以了!

解决方案 »

  1.   

    感谢秋水大侠!
    请问Julienjut(秋水)大侠, 这些函数应该写在什么位置上呢?
    我的目的是让程序一开始运行就改变所有的字体.
    多谢!!!!!! 
      

  2.   

    这些可以写在任何初始化的地方。
    一般推荐写在OnCreate()函数体中,不过如果程序一开始就把字体对象给替换了,可以会影响其它程序的正常显示(不知道具体什么样)。
      

  3.   

    我把这些代码加在Initialize中,为什么不起作用呀?
    CFont OldFont, NewFont;
    LOGFONT logFont;
    logFont.lfHeight=30;
    logFont.lfWidth=0;
    logFont.lfEscapement=0;
    logFont.lfOrientation=0;
    logFont.lfWeight=FW_NORMAL;
    logFont.lfItalic=0;
    logFont.lfUnderline=0;
    logFont.lfStrikeOut=0;
    logFont.lfCharSet=ANSI_CHARSET;
    logFont.lfOutPrecision=OUT_DEFAULT_PRECIS;
    logFont.lfClipPrecision=CLIP_DEFAULT_PRECIS;
    logFont.lfQuality=PROOF_QUALITY;
    logFont.lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
    strcpy(logFont.lfFaceName,"Times New Roman"); GetFont()->GetLogFont(&logFont); 
    NewFont.CreateFontIndirect(&logFont);
    SetFont(&NewFont);
      

  4.   

    我认为应该得到DC才行。try following code:
    CDC *pDC=GetDC();
    &oldFont=pDC->SelectObject(newFont);
      

  5.   

    在一个基于对话框的程序中
    我把你的语句加入到了OnCreate中,但是没看出什么变化呀?
    (比如控制菜单,按钮的字体都不变的)
      

  6.   

    lownr(双面)大侠 能解释在清楚一些吗?
    小弟是新手 : )
      

  7.   

    quengzi(snowolf)大侠,您指得是什么属性呀? 
    多谢指教!!!!!!
      

  8.   

    tvia_zgc(瘦猴)你 能  解释一下为什么要加在dc中呢
      

  9.   

    有两种方法:1。定义,LOGFONT型的变量,对里面的成员分别复值2,用构造函数
      

  10.   

    我就是定义的LOGFONT,
    但是语句应该写在哪呢?
    我想把我这个程序所有的字体都改一下
      

  11.   

    先得到你窗体的HWND,再用CWnd::SetFont(...)或直接发送(WM_SETFONT);
    如果是对话框,可以用向导直接改字体;
      

  12.   

    请问楼上的大侠
    要是菜单的话 如何得到它的HWND?请指教!!!!!!
      

  13.   

    请问楼上的大侠
    要是菜单的话 如何得到它的HWND?请指教!!!!!! 
      

  14.   

    用GetMenu()得到菜单HWND
    比如:CMenu menu=GetMenu()
    menu.m_hWnd;   如何得到它的HWND
      

  15.   

    我觉得once168(once168)的方法不对.
    menu 根本不是一个CWnd,怎么会有SetFont函数呢?
    请指教. 
      

  16.   

    在Visual C Plus Plus 的tools或者是在option中可以进行运行环境的字体设置(我以前用过的),不知道是否是你要实现的目的? 
      

  17.   

    jackcao(蓝牙) 兄弟 
    你说的是不是改VC开发环境的字体呀? 我改的是程序的字体的
      

  18.   

    你的CFONT 变量应该是对话框的类变量,生存期和对话框同步才行
      

  19.   

    zhaoyao73(小赵) 大侠说说怎么写代码 在哪写好吗?
      

  20.   

    zhaoyao73(小赵) 大侠说说怎么写代码 在哪写好吗
      

  21.   

    zhaoyao73(小赵) 大侠说说怎么写代码 在哪写好吗   
      

  22.   

    每个窗体都可设置字体的。
    可以在OnDraw或OnPaint中引用下面的代码:
    CFont font;
    CFont *pOldFont=NULL;
    font.CreateFont(-30, 0, 0, 0, FW_LIGHT, FALSE, FALSE, 0, ANSI_CHARSET,
                    OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
                    DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN,"宋体");//一个例子
    pOldFont = (CFont*) pDC->SelectObject(&(GetDocument()->font));//原来的字体
    pDC->SetTextColor(...);//设置字体颜色再TextOut什么的就用你新的字体了。
    注意:1。那个font可设为类的成员变量,初始化时就可以用CreateFont,这样提高一些效率。2。pOldFont 不要丢啊。再用时可以再Select回去。