采用简单办法使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。
采用简单办法使Edit control中的文本垂直对齐
图1
采用简单办法使Edit control中的文本垂直对齐
图2]
















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





上一篇:《AutoCAD 2014中文版超级学习手册》——第2章 图层设置 2.1 设置图层


下一篇:Lync Server 2010迁移至Lync Server 2013部署系列 Part12:用户迁移