在单文档程序中,在view窗口中拖拉一个矩形,双击矩形,在矩形范围内产生一个文本框,请问如何使他在输入的时候,是垂直居中的,输入完毕后,文本框消失,把文本框里内容写到矩形内

解决方案 »

  1.   

    在你Create的时候设置CEdit对象的样式里选择居中,
    DWORD dwStyle;
    dwStyle = ES_AUTOHSCROLL | ES_CENTER |ES_MULTILINE
     | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER;
    m_Edit.Create(dwStyle,CRect(10, 10, 100, 100), this, 1);
    对于你说的输入完毕后文本框消失,你可以在你输入结束时获取键盘的Enter键消息,在消息响应里用:
    m_Edit.ShowWindow(SW_HIDE);//隐藏文本框
    m_Edit.EnableWindow(FALSE);//使文件框不可用,也许你只需要将文本框隐藏希望能对你有所帮助。
      

  2.   

    自己创建个CFont,旋转270度,就是竖着的字体了。
    CFont vertFont;vertFont.CreateFont(0, 0, 2700, 2700, FW_BOLD,
    0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
    DEFAULT_PITCH, "Arial");
      

  3.   

    重载CEdit 自己在重画。 用DrawText的DT_VCENTER
      

  4.   

     DrawText的DT_VCENTER 只支持单行的吧   
      

  5.   


    可以这样, 用DrawText先算出多行文字的rect, 然后比较edit的rect, rect相减/2,计算居中后用DrawText画多行。