当前位置:C++技术网 > 精选软件 > static静态控件对齐显示方式全面分析

static静态控件对齐显示方式全面分析

更新时间:2016-02-16 10:46:13浏览次数:1+次

    在创建静态控件显示文字时,为了让文字显示的更加美观,我们需要注意文字的对齐方式。在文章《win32的Static控件颜色文字颜色文字背景颜色的设置》中,我们学习了静态控件的颜色方面的设置。
    我们这里重点看看对齐方式方面的细节。对齐分为水平方向和垂直方向的,在水平方向上有左对齐、水平居中对齐、右对齐。在垂直方向上,只有一个垂直居中对齐。事实上,win32中并没有明确指出垂直居中对齐这个控件风格。我是借助静态控件显示图像的居中图像风格来实现文字的垂直居中对齐的。
    对于文字的垂直方向的对齐,win32的静态控件没有提供全面的支持,可能是用处不大吧。不过有时候可能需要,就在此提及了。
    下面是对齐方式说明:
SS_CENTERIMAGE:文字垂直居中显示。不支持换行符。
SS_CENTER:文字水平居中显示,支持换行符,按字换行。
SS_LEFT:文字左对齐显示,支持换行符,按字换行。
SS_RIGHT:文字右对齐显示,支持换行符,按字换行。

    上面的列表中已经说明清楚了。对齐显示方式就不多解释了。我们继续看看几种对齐方式的效果图:

静态控件文字对齐方式效果图

【静态控件文字对齐方式效果图】
    我解释下按字换行。按字换行对于英文来说,就是一个单词。对于中文来说就是一个汉字。所以对于一个网址如www.cjjjs.com这样的一串英文字符串来说,就会出现按字换行不准确而造成显示错误,需要注意一下。
    而支持换行符的意思,就是静态控件理解\r、\n、\r\n这样的换行符号,然后换行显示文字。如果不支持换行符,那么换行符将显示成竖线,表示无法显示的字符。
    那么静态控件的按字换行和支持换行符的特性是如何来的呢?因为这个特性默认就支持的,不需要额外设置什么风格之类的。实际上,静态控件在显示文本是使用DrawText函数,启用了DT_WORDBREAK、DT_NOCLIP、DT_EXPANDTABS特性。这样就让显示文字可以支持按字换行和支持换行符,这是DrawText函数的功劳。
    如果你想详细了解下DrawText函数,请阅读《DrawText自动识别换行符和实现多行输出即自动换行》。