CEdit文本框垂直居中

zj62366804 2010-08-11 10:29:01
在单文档程序中,在view窗口中拖拉一个矩形,双击矩形,在矩形范围内产生一个文本框,请问如何使他在输入的时候,是垂直居中的,输入完毕后,文本框消失,把文本框里内容写到矩形内
...全文
1006 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-08-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 muzizongheng 的回复:]
引用 7 楼 zj62366804 的回复:
引用 6 楼 muzizongheng 的回复:
重载CEdit 自己在重画。 用DrawText的DT_VCENTER
DrawText的DT_VCENTER 只支持单行的吧


可以这样, 用DrawText先算出多行文字的rect, 然后比较edit的rect, rect相减/2,计算居中后用DrawText画多行。
[/Quote]
这个需求就要通过这种方式自己计算自己输出
没有什么好方法
要不就用成熟的控件库
比如VG
muzizongheng 2010-08-13
  • 打赏
  • 举报
回复
重载CEdit 自己在重画。 用DrawText的DT_VCENTER
muzizongheng 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zj62366804 的回复:]
引用 6 楼 muzizongheng 的回复:
重载CEdit 自己在重画。 用DrawText的DT_VCENTER
DrawText的DT_VCENTER 只支持单行的吧
[/Quote]

可以这样, 用DrawText先算出多行文字的rect, 然后比较edit的rect, rect相减/2,计算居中后用DrawText画多行。
Eleven 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zj62366804 的回复:]
引用 6 楼 muzizongheng 的回复:
重载CEdit 自己在重画。 用DrawText的DT_VCENTER
DrawText的DT_VCENTER 只支持单行的吧
[/Quote]
DT_WORDBREAK
zj62366804 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 muzizongheng 的回复:]
重载CEdit 自己在重画。 用DrawText的DT_VCENTER
[/Quote] DrawText的DT_VCENTER 只支持单行的吧
五香花生米 2010-08-11
  • 打赏
  • 举报
回复
自己创建个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");
chenjelly 2010-08-11
  • 打赏
  • 举报
回复
哦。不好意思。没有看清楚。您要求的是“垂直居中”。
zj62366804 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chenjelly 的回复:]
在你Create的时候设置CEdit对象的样式里选择居中,
DWORD dwStyle;
dwStyle = ES_AUTOHSCROLL | ES_CENTER |ES_MULTILINE
| WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER;
[/Quote]
您的是水平居中
chenjelly 2010-08-11
  • 打赏
  • 举报
回复
在你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);//使文件框不可用,也许你只需要将文本框隐藏

希望能对你有所帮助。
zj62366804 2010-08-11
  • 打赏
  • 举报
回复
要支持多行的

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧