当前位置:C++技术网 > 资讯 > win32编辑框控件风格设置详细讲解

win32编辑框控件风格设置详细讲解

更新时间:2016-02-28 13:33:28浏览次数:1+次

    使用编辑框,可以使用CreateWindow函数,传入edit这个控件的窗口类名称创建,在指定窗口风格时,可以指定我们需要的风格,创建一个漂亮的编辑框控件。
    默认编辑框风格,不会自动滚动,包括水平滚动和垂直滚动。当输入的内容到达编辑框最右侧或者最底部时,就无法再输入文字了。

    水平方向上无法输入文字的效果如下图所示:

单行的编辑框输入文字到最右侧就无法再输入了

【单行的编辑框输入文字到最右侧就无法再输入了】

单行的编辑框增加ES_AUTOHSCROLL风格,可以继续输入文字

【单行的编辑框增加ES_AUTOHSCROLL风格,可以继续输入文字】
    垂直方向的就不再演示,效果差不多。默认的情况下,编辑框是单行、没有自动水平滚动、没有自动垂直滚动,有多大的编辑框,就只能输入多少内容。如果是作为单行编辑框输入,如输入用户名,默认的就可以了。如果在单行编辑框中输入一个自我介绍,那么边框长度肯定不够,但是编辑框本身不能拉太宽,所以使用自动水平滚动风格ES_AUTOHSCROLL即可在到达编辑框最右侧时,文字自动向左移动,可以继续输入文字。
    同理,当自动垂直滚动风格ES_AUTOVSCROLL也就支持输入更多的行,前面的行往上移动。不管是水平还是垂直方向上的,移动了之后,前面的文字就看不到了。我们需要选中文字之后,将鼠标向左或者向上移动,然后可以滚动看到前面移动被隐藏的文字。这样就很不方便了。
    所以,我们可以加入窗口滚动条,这样就可以使用滚动条来拖动显示被隐藏的文字。只要加入WS_VSCROLL(垂直滚动条)或者WS_HSCROLL(水平滚动条)即可。
    这里要注意一下,自动水平滚动和自动垂直滚动与滚动条是两码事哦。自动滚动是支持更多内容的输入,而滚动条是可以让我们拖动滚动条的滑块显示被隐藏的文字。当然正是因为自动滚动才导致内容被隐藏的,也是为了方便用户看到被隐藏的文字,才增加了滚动条。这样一说,我想就不会再分不清楚自动滚动和滚动条了吧。
    如果你要想能够多行输入文本,需要加上ES_MULTILINE编辑框风格,否则文字始终在第一行上。单行模式下,编辑框不支持换行符,因为单行模式根本就不需要换行,即使你的编辑框很高,那也是没有用的。加入了多行风格,编辑框就可以多行显示了。要知道,在多行模式下,超出水平宽度的文字,应该自动换行。所以,在多行模式下,不要使用ES_AUTOHSCROLL。不然就不会自动换行了。多行模式时一定要加上ES_AUTOVSCROLL来支持更多行的输入。多行模式自动支持换行符换行。粘贴到编辑框的文字中含有换行符,那么编辑框会自动换行显示。换行符可以是\r、\n、\r\n。实际上编辑框的文字的输出显示用的是DrawText函数,所以编辑框支持这些特性,也就很好理解了。你可以阅读《DrawText自动识别换行符和实现多行输出即自动换行》来了解DrawText函数的更多信息。
    如果你想让编辑框拥有边框,加上WS_BORDER风格。如果想让编辑框的文字右对齐,可以加入ES_RIGHT编辑框风格。当然你可以让编辑框的文字左对齐ES_LEFT、居中对齐ES_CENTER,当然都是水平方向上的。

    右对齐的效果如下:

编辑框右对齐的效果图

【编辑框右对齐的效果图】
    如果想编辑框中的文字是只读的,加入ES_READONLY。如果想让编辑框输入密码,加入ES_PASSWORD风格。如果想编辑框中的因为字母都是大写的,加入风格ES_UPPERCASE,这样输入的字母都会自动被转换成大写的。如果你加入ES_LOWERCASE也就可以将字母都转成小写的。这个可以快速帮助我们搜集输入的内容,让字母的大小写规整显示。
    这里我们就解释了编辑框的常用的风格,个别风格可以看MSDN。