MFC使用的风格(CButton, CEdit, CStatic, CWnd等等)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC使用的风格(CButton, CEdit, CStatic, CWnd等等)相关的知识,希望对你有一定的参考价值。

风格 描述
按钮风格 应用于CButton类对象,例如单选框、复选框和按钮。在CButton::Create的dwStyle参数中设置一个组合的风格。
组合框风格 应用于CComboBox类对象。在CComboBox::Create的dwStyle参数中设置一个组合的风格。
编辑风格 应用于CEdit类对象。在CEdit::Create的dwStyle参数中设置一个组合的风格。
框架窗口风格 应用于CFrameWnd类对象。在CFrameWnd::Create的dwStyle参数中设置一个组合的风格。
列表框风格 应用于CListBox类对象。在CListBox::Create的dwStyle参数中设置一个组合的风格。
消息框风格 应用于AfxMessageBox项。在AfxMessageBox的nType参数中设置一个组合的风格。
滚动条风格 应用于CScrollBar类对象。在CScrollBar::Create的dwStyle参数中设置一个组合的风格。
静态文本风格 应用于CStatic类对象。在CStatic::Create的dwStyle参数中设置一个组合的风格。
窗口风格 应用于CWnd类对象。在CWnd::Create或CWnd::CreateEx的dwStyle参数中设置一个组合的风格。
扩展窗口风格 应用于CWnd类对象。在CWnd::CreateEx的dwExStyle参数中设置一个组合的风格。  




按钮风格


· BS_AUTOCHECKBOX 与复选框相同,但是当用户选择复选框时,检查标记出现在复选框中,而当用户再一次选择复选框时,检查标记就消失。
· BS_AUTORADIOBUTTON 与单项按钮相同,但是当用户选择它的时候,这个按钮自动加亮显示自己并去掉同组中相同风格的其它单项按钮的选择状态。
· BS_AUTO3STATE 与三态复选框相同,但是当用户选择该框时它会改变自己的状态。
· BS_CHECKBOX  创建一个小方块,在它的右边显示文本(除非这个风格与BS_LEFTTEXT风格一起使用)。
· BS_DEFPUSHBUTTON 创建一个具有深黑边界的按钮。用户可以按下ENTER键以选择这个按钮。这个风格使用户可以快速地选择最相似的选项(缺省选项)。
· BS_GROUPBOX  创建一个矩形区域,其中的按钮是成组的。与这种风格相关的任何文本将显示在矩形的左上角。
· BS_LEFTTEXT  当与单项按钮风格或复选框风格一起使用时,文本出现在单项按钮或复选框的左边。
· BS_OWNERDRAW 创建一个自画按钮。当按钮的视觉状态发生改变时,框架调用DrawItem成员函数。当使用CBitmapButton类的时候,必须设置这个风格。
· BS_PUSHBUTTON 创建一个按钮,当用户选择该按钮时向所有者窗口发送一个WM_COMMAND消息。
· BS_RADIOBUTTON 创建一个小圆形区域,在它的右边显示文本(除非这个风格与BS_LEFTTEXT风格一起使用)。单项按钮通常成组使用但是只能独占选择。
· BS_3STATE  与复选框类似,但是这个框不仅可以被选中,还可以被变灰。变灰状态通常用来标识该复选框已经被禁止。


请参阅:CButton::Create




组合框风格


· CBS_AUTOHSCROLL 当用户在行尾输入一个字符时,自动把编辑控件中的文本向右滚动。如果没有设置该风格,则输入的文本信息只能多到填满矩形边框。
· CBS_DROPDOWN 与CBS_SIMPLE类似,但是除非用户选择了编辑控件旁边的图标,否则不会显示列表框。
· CBS_DROPDOWNLIST 与CBS_DROPDOWN类似,但是编辑控件被静态文本项代替,其中显示了列表框中的当前选择。
· CBS_HASSTRINGS 包含了字符串组成的项的自画组合框。组合框维护着字符串的内存和指针,因此应用程序可以使用GetText成员函数从某个项获得文本。
· CBS_OEMCONVERT 在组合框的编辑控件内输入的文本将从ANSI字符集转换到OEM字符集,然后再回到ANSI。当应用程序调用Windows的AnsiToOem函数把组合框中的一个ANSI字符串转换到OEM字符时,这能确保进行了合适的字符转换。这个风格对那些包含了文件名的组合框最有用,仅适用于用CBS_SIMPLE或CBS_DROPDOWN风格创建的组合框。
· CBS_OWNERDRAWFIXED 列表框的拥有者负责画出其内容,列表框中所有项的高度是一样的。
· CBS_OWNERDRAWVARIABLE 列表框的拥有者负责画出其内容,列表框中各项的高度是不一致的。
· CBS_SIMPLE  任何时候都显示列表框。列表框的当前选择显示在编辑控件中。
· CBS_SORT  自动排列输入到列表框的字符串。
· CBS_DISABLENOSCROLL 当列表框没有足够的项以供滚动时,列表框将显示一个被禁止的垂直滚动条。如果没有这种风格,当列表框不包含足够的项时,这个滚动条将会被隐藏。
· CBS_NOINTEGRALHEIGHT 指明组合框的大小就是应用程序在创建该组合框时指定的大小。通常,Windows会调整一些组合框的大小,使得组合框不需要显示部分项。


请参阅:CComboBox::Create




编辑风格


· ES_AUTOHSCROLL 当用户在行尾输入字符时,自动将文本向右滚动10个字符。当用户按下ENTER键时,控件将文本滚动回起始位置。
· ES_AUTOVSCROLL 当用户在最后一行输入ENTER时,自动将文本向上滚动一页。
· ES_CENTER  在单行或多行编辑控件中将文本对中。
· ES_LEFT  在单行或多行编辑控件中将文本靠左对齐。
· ES_LOWERCASE 将用户输入到编辑控件的字符全部转换为小写。
· ES_MULTILINE 指明了一个多行编辑控件(缺省的是单行的)。如果指定了ES_AUTOVSCROLL风格,编辑控件将显示尽可能多的文本,并且当用户按下ENTER键时会自动地垂直滚动文本。如果没有指定ES_AUTOVSCROLL风格,则编辑控件将显示尽可能多的行,如果在按下ENTER键却没有更多的行要显示的话,就发出蜂鸣声。如果指定了ES_AUTOHSCROLL风格,当光标到达控件的右边时,多行编辑控件会自动地水平滚动文本。如果要开始一个新行,用户必须按下ENTER键。如果没有指定ES_AUTOHSCROLL风格,控件会在有必要时自动将单词折合到下一行的开始。如果按下ENTER键,则另起一行。折回单词的位置是由窗口的大小决定的。如果窗口的大小发生改变,折回单词的位置也会反生改变,将会重新显示文本。多行编辑控件可以有滚动条。具有滚动条的编辑控件会处理它自己的滚动条消息。没有滚动条的编辑控件按照前面描述的方式进行滚动,并且处理父窗口发出的任何滚动消息。
· ES_NOHIDESEL 通常,当编辑控件失去输入焦点时,它会隐藏选择区域,当它获得输入焦点时,它会反转显示选择区域。如果指定了ES_NOHIDESEL风格则去掉了这个缺省的动作。
· ES_OEMCONVERT 输入到编辑控件的文本将被从ANSI字符集转换到OEM字符集,然后转换回ANSI字符集。这使得在应用程序调用Windows的AnsiToOem函数以把编辑控件中的ANSI字符串转换为OEM字符时,能够进行正确的字符转换。这个风格对包含文件名的编辑控件最有用。
· ES_PASSWORD  在编辑控件中输入字符时,将所有的字符显示为星号(*)。应用程序可以通过SetPasswordChar成员函数来改变显示的字符。
· ES_RIGHT  在单行或多行编辑控件中将文本靠右对齐。
· ES_UPPERCASE 在编辑控件中输入字符时,将所有的字符转换为大写。
· ES_READONLY  禁止用户输入或修改编辑控件中的文本。
· ES_WANTRETURN 指定当用户在对话框中的多行编辑控件中输入文本时,如果按下了ENTER键,则插入回车换行符。如果不使用这个风格,按下ENTER键的效果与按下对话框的缺省按钮相同。这个风格对单行编辑控件不起作用。


请参阅:CEdit::Create




框架窗口风格


· FWS_ADDTOTITLE 指定了要附加到框架窗口标题末尾的信息。例如,“Microsoft Draw - Drawing in Document1”。你可以指定显示在AppWizard的Advanced Options对话框中的字符串。如果你希望关闭这个选项,重载CWnd::PreCreateWindow消息。
· FWS_PREFIXTITLE 在框架窗口的标题中,在应用程序的名字之前显示文档的名字。例如,“Document - WordPad”。你可以指定显示在AppWizard的Advanced Options对话框中的字符串。如果你希望关闭这个选项,重载CWnd::PreCreateWindow消息。
· FWS_SNAPTOBARS 控制框架窗口的大小,该窗口围绕着一个控制条,这个控制条是一个浮动窗口,而不是固定在框架窗口中。这个风格调整窗口的大小以使用控制条。  






列表框风格


· LBS_EXTENDEDSEL 用户可以通过鼠标和SHIFT键或者其它特殊键组合来选取多个项。
· LBS_HASSTRINGS 指定自画列表框中包含的项是由字符串组成的。列表框维护着字符串的内存和指针,应用程序可以使用GetText成员函数来获得特定项的文本。
· LBS_MULTICOLUMN 指定一个可以水平滚动的多列列表框。SetColumnWidth成员函数设置列的宽度。
· LBS_MULTIPLESEL 当用户单击或双击字符串时,切换字符串的选择状态。可以选择任意数目的字符串。
· LBS_NOINTEGRALHEIGHT 列表框的大小与应用程序创建它的时候指定的大小完全相等。通常,Windows会调整列表框的大小,是列表框不会只显示部分项。
· LBS_NOREDRAW 当列表框发生变化时不更新显示。这个风格可以通过发送WM_SETREDRAW消息在任何时间改变。
· LBS_NOTIFY  当用户单击或双击字符串时,父窗口接收到一个输入消息。
· LBS_OWNERDRAWFIXED 列表框的所有者负责画出它的内容,列表框中的各项是等高的。
· LBS_OWNERDRAWVARIABLE 列表框的所有者负责画出其内容,列表框中的各项的高度不相同。
· LBS_SORT  列表框中的字符串是按照字母表顺序排列的。
· LBS_STANDARD 列表框中的字符串是按照字母表顺序排序的,当用户单击或双击字符串时,父窗口接收到一个输入消息。列表框在每条边上都有边界。
· LBS_USETABSTOPS 允许列表框在显示字符串的时候识别并扩展制表字符。缺省的制表位置是32个对话框单位。(对话框单位是水平或垂直距离。水平对话框单位等于当前对话框基准宽度单位的四分之一。对话框基准单位是通过当前系统字体的宽度和高度来计算的。Windows的GetDialogBaseUnits函数返回以象素为单位的当前对话框基准单位。)
· LBS_WANTKEYBOARDINPUT 不论什么时候,只要用户在列表框具有输入焦点的时候按下了键,列表框就接收到WM_VKEYTOITEM或WM_CHARTOITEM消息。这使得应用程序能够对键盘输入进行特别处理。
· LBS_DISABLENOSCROLL 当列表框中没有足够多的项,不需要滚动时,就显示一个被禁止的垂直滚动条。如果不使用这个风格,当列表框不包含足够多的项时,它就隐藏滚动条。


请参阅:CListBox::Create




消息框风格


消息框类型
· MB_ABORTRETRYIGNORE 消息框包含三个按钮:Abort,Retry和Ignore。
· MB_OK  消息框包含一个按钮:OK。
· MB_OKCANCEL  消息框包含两个按钮:OK和Cancel。
· MB_RETRYCANCEL 消息框包含两个按钮:Retry和Cancel。
· MB_YESNO  消息框包含两个按钮:Yes和No。
· MB_YESNOCANCEL 消息框包含三个按钮:Yes,No和Cancel。


消息框模式
· MB_APPLMODAL 用户在当前窗口中继续工作之前必须先响应消息框。但是,用户可以移动到其它应用程序的窗口中并在那些窗口中工作。如果没有指定MB_SYSTEMMODAL和MB_TASKMODAL,则缺省值为MB_APPLMODAL。
· MB_SYSTEMMODAL 在用户响应消息框之前,所有的应用程序都被挂起。系统模式消息框被用来向用户通知严重的、潜在的毁灭性错误,需要立即注意,小心对待。
· MB_TASKMODAL 与MB_APPLMODAL类似,但是在微软基础类应用程序中没有用处。这个标志是为那些没有窗口句柄的调用应用程序或库保留的。


消息框图标
· MB_ICONEXCLAMATION 在消息框中显示感叹号图标。
· MB_ICONINFORMATION 在消息框中显示一个圆包围着字母“i”的图标。
· MB_ICONQUESTION 在消息框中显示问号图标。
· MB_ICONSTOP  在消息框中显示停止标志图标。


消息框缺省按钮
· MB_DEFBUTTON1 第一个按钮是缺省按钮。注意,除非指定了MB_DEFBUTTON2 或MB_DEFBUTTON3风格,否则第一个按钮总是缺省按钮。
· MB_DEFBUTTON2 第二个按钮是缺省按钮。
· MB_DEFBUTTON3 第三个按钮是缺省按钮。


请参阅:AfxMessageBox




滚动条风格


· SBS_BOTTOMALIGN 与SBS_HORZ风格一起使用。滚动条的底边与Create成员函数中指定的矩形的底边对齐。滚动条具有系统滚动条的缺省高度。
· SBS_HORZ  指明了一个水平滚动条。如果既没有指定SBS_BOTTOMALIGN风格又没有指定SBS_TOPALIGN风格,则滚动条具有Create成员函数中指定的高度,宽度和位置。
· SBS_LEFTALIGN 与SBS_VERT风格一起使用。滚动条的左边与Create成员函数中指定的矩形的左边对齐。滚动条具有系统滚动条的缺省宽度。
· SBS_RIGHTALIGN 与SBS_VERT风格一起使用。滚动条的右边与Create成员函数中指定的矩形的右边对齐。滚动条具有系统滚动条的缺省宽度。
· SBS_SIZEBOX  指明了一个尺寸框。如果SBS_SIZEBOXBOTTOMRIGHTALIGN风格和SBS_SIZEBOXTOPLEFTALIGN风格都没有指定,尺寸框具有Create成员函数中指定的高度,宽度和位置。
· SBS_SIZEBOXBOTTOMRIGHTALIGN 与SBS_SIZEBOX风格一起使用。尺寸框的右下角与Create成员函数中指定的矩形的右下角对齐。尺寸框具有系统尺寸框的缺省大小。
· SBS_SIZEBOXTOPLEFTALIGN 与SBS_SIZEBOX风格一起使用。尺寸框的左上角与Create成员函数中指定的矩形的左上角对齐。尺寸框具有系统尺寸框的缺省大小。
· SBS_TOPALIGN 与SBS_HORZ风格一起使用。滚动条的顶边与Create成员函数中指定的矩形的顶边对齐。滚动条具有系统滚动条的缺省高度。
· SBS_VERT  指明了一个垂直滚动条。如果既没有指定SBS_RIGHTALIGN风格也没有指定SBS_LEFTALIGN风格,滚动条具有Create成员函数中指定的高度,宽度和位置。


请参阅:CScrollBar::Create




静态文本风格


· SS_BLACKFRAME 指定了一个带边框的方框,用与窗口边框相同的颜色画出。缺省的颜色是黑色。
· SS_BLACKRECT 指定一个矩形,用窗口边框的颜色填充。缺省颜色是黑色。
· SS_CENTER  指定一个简单的矩形,在矩形的中央显示给定的文本。文本将在显示之前格式化。超出行尾的单词将自动折回到下一行的开始。
· SS_GRAYFRAME 指定一个带边框的方框,用屏幕的背景色(桌面颜色)画出。缺省的颜色是灰色。
· SS_GRAYRECT  指定一个矩形,用屏幕的背景色填充。缺省的颜色是灰色。
· SS_ICON  指定了在对话框中显示的图标。给定的文本是资源文件中定义的图标名(不是文件名)。nWidth和nHeight参数被忽略,图标自动调整自己的大小。
· SS_LEFT  指定一个简单的矩形,在矩形内显示左对齐的给定文本。文本在显示之前格式化。超出行尾的单词将自动折回到下一行的开始。
· SS_LEFTNOWORDWRAP 指定一个简单的矩形,在矩形内显示左对齐的给定文本。制表符被扩展,但是不会折回单词。超出行尾的单词被裁剪。
· SS_NOPREFIX  除非指定了这个风格,否则Windows将控制文本中所有的“&”字符解释为加速键前缀。在这种情况下,“&”被移去,字符串中的下一个字符被加上下划线。如果一个包含文本的静态文本控件不需要这个特性,可能需要加入SS_NOPREFIX。这个风格可以用于任何静态控件。你可以用位或操作符把SS_NOPREFIX与其它风格组合起来。最常使用这个风格的情况是,可能要在对话框的静态控件中显示带有“&”字符的文件名或其它字符串。
· SS_RIGHT  指定一个简单的矩形,在矩形内显示右对齐的给定文本。文本在显示之前格式化。超出行尾的单词将自动折回到下一行的开始。
· SS_SIMPLE  指定一个简单的矩形,在矩形内显示一行左对齐的文本。文本行不能用任何方法缩短或改变。(控件的父窗口或对话框不能处理WM_CTLCOLOR消息)
· SS_USERITEM  指定一个用户自定义的项。
· SS_WHITEFRAME 指定一个带边框的方框,用窗口背景色画出。缺省值为白色。
· SS_WHITERECT 指定一个矩形,用窗口背景色填充。缺省值为白色。


请参阅:CStatic::Create




窗口风格


· WS_BORDER  创建一个有边界的窗口。
· WS_CAPTION  创建一个有标题条的窗口(隐含WS_BORDER风格)。不能与WS_DLGFRAME风格一起使用。
· WS_CHILD  创建一个子窗口。不能与WS_POPUP风格一起使用。
· WS_CLIPCHILDREN 当你在父窗口中绘图时,除去子窗口所占的区域。在创建父窗口的时候使用。
· WS_CLIPSIBLINGS 剪裁相关的子窗口,这意味着,当一个特定的子窗口接收到重绘消息时,WS_CLIPSIBLINGS风格将在子窗口要重画的区域中去掉与其它子窗口重叠的部分。(如果没有指定WS_CLIPSIBLINGS风格,并且子窗口有重叠,当你在一个子窗口的客户区绘图时,它可能会画在相邻的子窗口的客户区中。)只与WS_CHILD风格一起使用。
· WS_DISABLED  创建一个初始状态为禁止的窗口。
· WS_DLGFRAME  创建一个窗口,具有双重边界,但是没有标题条。
· WS_GROUP  指定一组控件中的第一个,用户可以用箭头键在这组控件中移动。在第一个控件后面把WS_GROUP风格设置为FALSE的控件都属于这一组。下一个具有WS_GROUP风格的控件将开始下一组(这意味着一个组在下一组的开始处结束)。
· WS_HSCROLL  创建一个具有水平滚动条的窗口。
· WS_MAXIMIZE  创建一个最大化的窗口。
· WS_MAXIMIZEBOX 创建一个具有最大化按钮的窗口。
· WS_MINIMIZE  创建一个初始状态为最小化的窗口。仅与WS_OVERLAPPED风格一起使用。
· WS_MINIMIZEBOX 创建一个具有最小化按钮的窗口。
· WS_OVERLAPPED 创建一个重叠窗口。重叠窗口通常具有标题条和边界。
· WS_OVERLAPPEDWINDOW 创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU,WS_THICKFRAME,WS_MINIMIZEBOX和WS_MAXIMIZEBOX风格的重叠式窗口。
· WS_POPUP  创建一个弹出式窗口,不能与WS_CHILD风格一起使用。
· WS_POPUPWINDOW 创建一个具有WS_BORDER,WS_POPUP和WS_SYSMENU风格的弹出窗口。为了使控制菜单可见,必须与WS_POPUPWINDOW一起使用WS_CAPTION风格。
· WS_SYSMENU  创建一个在标题条上具有控制菜单的窗口。仅对带标题条的窗口使用。
· WS_TABSTOP  指定了一些控件中的一个,用户可以通过TAB键来移过它。TAB键使用户移动到下一个用WS_TABSTOP风格定义的控件。
· WS_THICKFRAME 创建一个具有厚边框的窗口,可以通过厚边框来改变窗口大小。
· WS_VISIBLE  创建一个最初可见的窗口。
· WS_VSCROLL  创建一个具有垂直滚动条的窗口。


请参阅:CWnd::Create, CWnd::CreateEx




扩展窗口风格


· WS_EX_ACCEPTFILES 指明用这个风格创建的窗口能够接受拖放文件。
· WS_EX_CLIENTEDGE 指明窗口具有3D外观,这意味着,边框具有下沉的边界。
· WS_EX_CONTEXTHELP 在窗口的标题条中包含问号。当用户单击问号时,鼠标光标的形状变为带指针的问号。如果用户随后单击一个子窗口,子窗口将接收到一个WM_HELP消息。
· WS_EX_CONTROLPARENT 允许用户用TAB键遍历窗口的子窗口。
· WS_EX_DLGMODALFRAME 指明一个具有双重边界的窗口,当你在dwStyle参数中指定了WS_CAPTION风格标志时,它可以具有标题条(可选)。
· WS_EX_LEFT  指定窗口具有左对齐属性。这是缺省值。
· WS_EX_LEFTSCROLLBAR 将垂直滚动条放在客户区的左边。
· WS_EX_LTRREADING 按照从左到右的方式显示窗口文本。这是缺省方式。
· WS_EX_MDICHILD 创建一个MDI子窗口。
· WS_EX_NOPARENTNOTIFY 指定用这个风格创建的子窗口在被创建或销毁的时候将不向父窗口发送WM_PARENTNOTIFY消息。
· WS_EX_OVERLAPPEDWINDOW 组合了WS_EX_CLIENTEDGE和WS_EX_WIND-OWEDGE风格。
· WS_EX_PALETTEWINDOW 组合了WS_EX_WINDOWEDGE和WS_EX_TOPMOST风格。
· WS_EX_RIGHT  赋予窗口右对齐属性。这与窗口类有关。
· WS_EX_RIGHTSCROLLBAR 将垂直滚动条(如果有)放在客户区的右边。这是缺省方式。
· WS_EX_RTLREADING 按照从右到左的顺序显示窗口文本。
· WS_EX_STATICEDGE 创建一个具有三维边界的窗口,用于不接受用户输入的项。
· WS_EX_TOOLWINDOW 创建一个工具窗口,目的是被用作浮动工具条。工具窗口具有标题条,比通常的标题条要短,窗口的标题是用小字体显示的。工具窗口不出现在任务条或用户按下ALT+TAB时出现的窗口中。
· WS_EX_TOPMOST 指定用这个风格创建的窗口必须被放在所有非顶层窗口的上面,即使这个窗口已经不处于激活状态,它还是保留在最上面。应用程序可以用SetWindowsPos成员函数来加入或去掉这个属性。
· WS_EX_TRANSPARENT 指定了用这个风格创建的窗口是透明的。这意味着,在这个窗口下面的任何窗口都不会被这个窗口挡住。用这个风格创建的窗口只有当它下面的窗口都更新过以后才接收WM_PAINT消息。
· WS_EX_WINDOWEDGE 指定了具有凸起边框的窗口。

 

http://blog.csdn.net/witch_soya/article/details/7719260

以上是关于MFC使用的风格(CButton, CEdit, CStatic, CWnd等等)的主要内容,如果未能解决你的问题,请参考以下文章

CEdit控件[转]

在 mfc 的 cedit 控制中处理箭头键

需要帮助了解 MFC CButton 的 SetTextMargin?

单击控件时在MFC中选择CEdit控件的内容

MFC OnPaint CButton

有没有办法在不使用 /UNICODE 编译的情况下使用 MFC 的 CEdit 函数“ShowBalloonTip”?