我想让CEdit中的文字垂直居中,因为这个编辑控件很宽。

解决方案 »

  1.   

    如果你用的是CEditView
    CEditView::GetEditCtrl()将返回其CEditCtrl的引用。()
    利用ModifyStyle 将ES_CENTER 这个属性加上就可以了。如果你用的是控件,直接将Center属性勾上就可以了。
      

  2.   

    偶的问题是垂直居中;ES_CENTER  则是水平居中。
    重复一下问题:  
    我想让CEdit中的文字垂直居中,因为这个编辑控件很宽。  
     
      

  3.   

    BinaryPoet(二进制诗人)说的是水平居中吧!
    既然CEdit中的文字垂直居中,一定是多行编辑控件了!
    重写CEdit,重载OnPaint设置文字对齐方式吧!
      

  4.   

    To:  mtsh(清风华仔) 
    文字是单行的。只要垂直即可。
    如果重载OnPaint,用DrawText()设置文字,则显示的是两行,一行是自己的,另一行是默认的。
      

  5.   

    各位看看,如何让CEdit中的文字垂直居中显示。
      

  6.   

    重写CEdit,重载OnPaint,其中添加:
             ModifyStyle(ES_MULTILINE ,0);
             CRect rc;
    GetClientRect(&rc);
    CString strEdit;
    GetWindowText(strEdit);
    SetWindowText("");
    dc.DrawText(strEdit,&rc,DT_VCENTER);
      

  7.   

    偶再附加一个问题:如何用DrawText显示旋转90度的字体?因为TextOut不能排版
      

  8.   

    mtsh(清风华仔)的方法是不可行的 ,先不考虑是否能居中显示,就是能的话,你的光标怎么办?
      

  9.   

    CEdit就没提供这样的功能,我也正为这东西愁呢!
    谁知道的话给我发个邮件,[email protected]
    谢谢,谢谢!
      

  10.   

    不好意思,看错了。旋转90度字体只要选的字体前加@就行了。例如MS Sans横的,@MS Sans 纵的。——但愿这次我没有看错。
      

  11.   

    关于mtsh(清风华仔)的方法:
    (1):根本显示不了字符,strEdit总是空的。
    如果没有SetWindowText("");
    (2):光标显示还是个问题。
      

  12.   

    各位谈谈窗口内光标的设置问题也可以。
    因为窗口中光标的位置不是SetCursorPos(point.x,point.y);所能完全控制的。
    为什么???