采用简单办法使Edit control中的文本垂直对齐

简介:

 Windows Shell提供的编辑控件Edit Control(注意不是Rich Edit)没有垂直对齐的风格,在这样的控件中显示文本时可以观察到文本总是顶端对齐,虽然说可以在WM_PAINT消息中绘制文本的位置,可以使其垂直对齐,但这样到鼠标的光标也不会垂直对齐,而且文字区域也不是中间对齐的。

  可以采用间接的办法做到使Edit control中的文本垂直对齐,其原理也很简单,创建Edit control的时候,使它的高度等于文本的高度(可以通过GetTextMetrics获取文本高度),这样文字能够充分填充Edit control的垂直空间,任谁也看不出来此刻是垂直对齐还是顶端对齐。
有些拆台的朋友可能会要求创建的Edit control高度( h)大于文本的高度,这种情况下可以先为Edit control创建一个父窗口,编辑控件的高度仍然等于文本的高度,然后将编辑控件放到其父窗口的中间(垂直方向)位置,其父窗口的高度设置为 h,然后Edit control和其父窗口的设置为相同颜色的背景,这样看起来Edit control中的文本还是中间对齐的。观察图(1),文本是垂直对齐吧,而且编辑控件的高度大于文本的高度。再观察图(2),绿色背景其实是Edit control的父窗口,白色背景才是Edit control。
图1
图2]
















本文转自jetyi51CTO博客,原文链接:http://blog.51cto.com/jetyi/594878  ,如需转载请自行联系原作者





相关文章
|
5月前
|
JSON 前端开发 JavaScript
bootstrap table表格内容居中对齐
bootstrap table表格内容居中对齐
55 0
|
5月前
设置按钮背景为透明去掉button按钮左右两边的留白
设置按钮背景为透明去掉button按钮左右两边的留白
|
6月前
|
敏捷开发 前端开发 开发者
【RaETable】🚀🚀🚀告别Form,RaETable表格列宽度支持拖动调整了,附带原理说明
【RaETable】🚀🚀🚀告别Form,RaETable表格列宽度支持拖动调整了,附带原理说明
|
7月前
|
Web App开发 前端开发 JavaScript
SAP UI5 SimpleForm 里在水平方向显示多组 Form 元素的实现方法试读版
SAP UI5 SimpleForm 里在水平方向显示多组 Form 元素的实现方法试读版
34 0
|
前端开发
css:writing-mode控制文字水平排布或垂直排布
css:writing-mode控制文字水平排布或垂直排布
85 0
css:writing-mode控制文字水平排布或垂直排布
C#-DevExpress改变表格行颜色
DevExpress改变表格行颜色
201 0
布局之悬浮显示更多文本并增加箭头指示效果
布局之悬浮显示更多文本并增加箭头指示效果
93 0
布局之悬浮显示更多文本并增加箭头指示效果
BottomNavigationView使用,配合ViewPager、修改图标大小、去掉文字等
BottomNavigationView使用,配合ViewPager、修改图标大小、去掉文字等
580 0
BottomNavigationView使用,配合ViewPager、修改图标大小、去掉文字等
SwiftUI—使用List列表在垂直方向显示一系列的内容
SwiftUI—使用List列表在垂直方向显示一系列的内容
382 0
SwiftUI—使用List列表在垂直方向显示一系列的内容
|
JavaScript 小程序
小程序--log居中 失焦获取表单中的值
小程序--log居中 失焦获取表单中的值
小程序--log居中 失焦获取表单中的值