因为程序里面有很多不同大小的按钮,我自己继承了一个CButton类,并在里面显示文字,但是文字的位置始终不能跟系统默认的居中位置相同,这个位置该怎么计算呢?

解决方案 »

  1.   

    在里面设置字体!取得系统的字体,对这个button重新设置一下字体!
      

  2.   

    在父窗口 GetFont ,然后给 CButton SetFont
      

  3.   

    输出文字的时候用DrawText
    这个函数支持格式设置
    具体的你可以查一下MSDN
      

  4.   

    我使用的是DrawState的方式显示文字,因为涉及到按钮的无效状态,所以要用这个函数  
      

  5.   

    很简单嘛,你直接算出字体的长度,再算出字体的高度
    void C##View::OnPaint(CDC* pDC)
    {
    CRect rect;
    int iWidth,iHeight;
    TEXTMETRICT tm;GetClientRect(&rect);
    pDC->GetTextMetrics(&tm);
    CSize sz=pDC->GetTextExtent(strText,strlen(strText));iWidth=sz.cx;
    iHeight=tm.tmHeight;CPoint pt((rect.Width()-iWidth)/2,(rect.Height()-iHeight)/2);
    DrawState(pt,...);//OK!现在居中显示
    }