天天看点

采用简单办法使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。

<a href="http://blog.51cto.com/attachment/201106/112205600.png" target="_blank"></a>

图1

<a href="http://blog.51cto.com/attachment/201106/112404315.png" target="_blank"></a>

图2]

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