我在对话框OnInitDialog函数里
初始化 CFont font;
       font.CreateFont(200,250,0,0,30,60,0,60,SYSTEM_FONT,1,0,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DECORATIVE,"font");
GetDlgItem(IDC_STATIC_TOP)->SetFont(&font,TRUE);怎么字体没有变化
在OnSize 中就有变化 着是为什么?

解决方案 »

  1.   

    SetFont
    之后需要重绘一下窗口才能看见。
      

  2.   

    ╭═══╮ ╭═══╮ ╭══════╮      
    ╰╮ ╭╯ ╰╮ ╭╯ ╰╮ ╭══╮╰╮     
      ║ ║   ║ ║   ║ ║  ╰╮╰╮    
      ║ ║   ║ ║   ║ ║   ║ ║    
      ║ ║   ║ ║   ║ ║   ║ ║    
      ║ ║   ║ ║   ║ ║  ╭╯╭╯    
      ║ ║   ║ ║   ║ ╰══╯╭╯     
      ║ ║   ║ ║   ║ ╭═══╯      
      ║ ║   ║ ║   ║ ║          
      ║ ║   ║ ║   ║ ║          
      ║ ║   ║ ║   ║ ║          
      ╰╮╰╮ ╭╯╭╯   ║ ║          
       ╰╮╰═╯╭╯   ╭╯ ╰╮         
        ╰═══╯    ╰═══╯     IT者-IT开发者的网站
                                             www.itzhe.cn
      

  3.   

    原来是在OnPaint() 函数设置!
    如果我非要在对话框初始化函数中stFont();函数
    之后怎么才能重化 是重载OnPaint函数?????
    ]一楼:: 怎么才能重会窗口????
      

  4.   

    能不详细点
    Invalidate();
    放到哪 ? 这个函数具体作用?
    谢谢
      

  5.   

    楼上正解
    或者Invalidate(True);
      

  6.   

    那到说这个函数 触发OnPant()函数 重新绘制窗口?
      

  7.   

    Invalidate()作用是发WM_PAINT这样系统会重绘窗口
      

  8.   

    GetDlgItem(IDC_STATIC_TOP)->SetFont(&font,TRUE);
    font.Detach();
    GetDlgItem(IDC_STATIC_TOP)->Invalidate();