文档库 最新最全的文档下载
当前位置:文档库 › Windows常见窗口样式和控件风格

Windows常见窗口样式和控件风格

Windows常见窗口样式和控件风格
Windows常见窗口样式和控件风格

Windows常见窗口样式和控件风格

一、窗口样式

WS_POPUP弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW子窗口(不能与WS_POPUP合用)

WS_MINIMIZE创建窗口拥有最小化按钮

WS_MINIMIZEBOX创建窗口拥有最小化按钮,须同时指定WS_SYSTEM样式WS_VISIBLE可见状态

WS_DISABLED不可用状态

WS_CLIPSIBLINGS使窗口排除子窗口之间的相对区域

WS_CLIPCHILDREN当在父窗口内绘图时,排除子窗口区域

WS_MAXIMIZE具有最大化按钮

WS_MAXIMIZEBOX创建窗口拥有最大化按钮,须同时指定WS_SYSTEM样式WS_CAPTION有标题框和边框(和WS_TILED样式相同)

WS_BORDER有单边框

WS_DLGFRAME带对话框边框样式,不带标题框

WS_VSCROLL有垂直滚动条

WS_HSCROLL有水平滚动条

WS_SYSMENU标题框上带有窗口菜单(须指定WS_CAPTION样式)

WS_THICKFRAME有可调边框(与WS_SIZEBOX样式相同)

WS_TILED与WS_OVERLAPPED风格相同

WS_TILEDWINDOW与WWS_OVERLAPPEDWINDOW风格相同

WS_GROUP组样式,每个组的第一个控件具有WS_TABSTOP样式

WS_TABSTOP可接受TAB键

WS_OVERLAPPED创建一个重叠式窗口,拥有标题栏和边框

WS_POPUPWINDOW-具有单边框,弹出式,系统菜单样式

WS_OVERLAPPEDWINDOW即:WS_OVERLAPPED风格,WS_CAPTION风格,WS_SYSMENU风格,WS_THICKFRAME风格,WS_MINIMIZEBOX风格和WS_MAXIMIZEBOX风格的组合

二、窗口扩展样式

WS_EX_DLGMODALFRAME-带双层边框

WS_EX_NOPARENTNOTIFY-创建/销毁时不通知父窗口

WS_EX_TOPMOST-窗口置顶(停留在所有非最高层窗口的上面)

WS_EX_ACCEPTFILES-可接受文件拖放

WS_EX_TRANSPARENT-透明样式,在同属窗口已重画时该窗口才可重画

WS_EX_MDICHILD-MDI子窗口样式

WS_EX_TOOLWINDOW-工具条窗口样式

WS_EX_WINDOWEDGE-带凸起边缘的边框

WS_EX_CLIENTEDGE-带阴影的边缘

WS_EX_CONTEXTHELP-有上下文帮助样式,标题栏包含一个问号标志

WS_EX_RIGHT-右对齐

WS_EX_RTLREADING-窗口文本从右到左显示

WS_EX_LEFTSCROLLBAR-垂直滚动条在窗口左边界

WS_EX_CONTROLPARENT-允许用户使用TAB键在窗口的子窗口间搜索

WS_EX_STATICEDGE-当窗口为不可用状态时创建一个三维边缘

WS_EX_APPWINDOW-当窗口可见时将一个顶层窗口放置在任务栏上

WS_EX_OVERLAPPEDWINDOW-带凸起边缘的边框,边缘有阴影

WS_EX_PALETTEWINDOW-带立体边框,有工具条窗口样式,窗口在顶层

WS_EX_LAYERED-分层或透明窗口,该样式可使用混合特效

WS_EX_NOINHERITLAYOUT-子控件不继承窗体或控件的布局

WS_EX_LAYOUTRTL-窗体或控件将具有从右向左的布局(因而会被镜像)

WS_EX_COMPOSITED-用双缓冲从下到上绘制窗口的所有子孙(WinXP以上) WS_EX_NOACTIVATE-处于顶层但不激活

三、按钮风格

BS_AUTOCHECKBOX同复选按钮类似,点击一下选中,再次点击取消。

BS_AUTORADIOBUTTON同单选按钮类似,点击后选中标志将从同组的其他单选按钮处移到当前选项。

BS_CHECKBOX复选按钮

BS_DEFPUSHBUTTON默认普通按钮,具有较黑的边框。

BS_GROUPBOX分组框

BS_LEFTTEXT同单选按钮或复选按钮配合使用,标题将显示在左侧。

BS_OWNERDRAW可创建一个拥有者自绘按钮。

BS_PUSHBUTTON普通下压按钮

BS_RADIOBUTTON圆形单选按钮

BS_3STATE三态复选按钮,三种状态即:选中,未选中,未定

BS_AUTOCHECKBOX检查框,按钮的状态会自动改变

BS_AUTORADIOBUTTON圆形选择按钮,按钮的状态会自动改变

BS_AUTO3STATE允许按钮有三种状态即:选中,未选中,未定

BS_CHECKBOX检查框

BS_LEFTTEXT左对齐文字

四、旋转按钮控件

UDS_HORZ指定一个水平旋转按钮.若不指定该风格则创建一个垂直的旋转按钮.

UDS_WRAP当旋转按钮增大到超过最大值时,自动重置为最小值,当减小至低于最小值时,自动重置为最大值.

UDS_ARROWKEYS当用户按下向下或向上箭头键时,旋转按钮值递增或递减.UDS_SETBUDDYINT旋转按钮将自动更新伙伴控件中显示的数值,如果伙伴控件能接受输入,则可在伙伴控件中输入新的旋转按钮值.

UDS_NOTHOUSANDS伙伴控件中显示的数值每隔三位没有千位分隔符.UDS_AUTOBUDDY自动使旋转按钮拥有一个伙伴控件.

UDS_ALIGNRIGHT旋转按钮在伙伴控件的右侧.

UDS_ALIGNLEFT旋转按钮在伙伴控件的左侧.

五、轨道条控件

TBS_HORZ指定一个水平轨道条.该风格是默认的.

TBS_VERT指定一个垂直轨道条.

TBS_AUTOTICKS在范围设定后,自动为轨道条加上刻度.

TBS_NOTICKS轨道条无刻度.

TBS_BOTTOM在水平轨道条的底部显示刻度,可与TBS_TOP一起使用.

TBS_TOP在水平轨道条的顶部显示刻度,可与TBS_BOTTOM一起使用.

TBS_RIGHT在垂直轨道条的右侧显示刻度,可与TBS_LEFT一起使用.

TBS_LEFT在垂直轨道条的左侧显示刻度,可与TBS_RIGHT一起使用.

TBS_BOTH在轨道条的上下部或左右两侧都显示刻度.

TBS_ENABLESELRANGE在轨道条中显示一个选择范围.

六、文本编辑框风格

ES_AUTOHSCROLL当在行尾添加一个字符后自动向右滚动10个字符。

ES_AUTOVSCROLL当输入回车后自动上滚一行。

ES_CENTER字符居中显示。

ES_LEFT字符左对齐。

ES_LOWERCASE统一转化为小写字母。

ES_MULTILINE允许多行显示。

ES_NOHIDESEL当编辑失去焦点时隐藏对字符的选定,重新获得焦点后以反色显示选中内容。

ES_OEMCONVERT将ANSI字符转化为OEM字符。

ES_PASSWORD以星号显示字符,多用于回显密码。

ES_RIGHT字符右对齐

ES_UPPERCASE统一转化为大写字母。

ES_READONLY设置字符为只读。

ES_WANTRETURN接受回车键输入。

七、列表框风格

LBS_STANDARD创建一个具有边界和垂直滚动条、当选择发生变化或条目被双击时能够通知父窗口的标准列表框。所有条目按字母排序。

LBS_SORT按字母排序。

LBS_NOSEL条目可视但不可选。

LBS_NOTIFY当用户选择或双击一个串时,发出消息通知父窗口。

LBS_DISABLENOSCROLL在条目不多时依然显示并不起作用的滚动条。LBS_MULTIPLESEL允许条目多选。

LBS_EXTENDEDSEL可用SHIFT和鼠标或指定键组合来选择多个条目。LBS_MULTICOLUMN允许多列显示。

LBS_OWNERDRAWVARIABLE创建一个拥有者画列表框,条目高度可以不

同。

LBS_OWNERDRAWFIXED创建一个具有相同条目高度的拥有者画列表框。LBS_USETABSTOPS允许使用TAB制表符。

LBS_NOREDRAW当条目被增删后不自动更新列表显示。

LBS_HASSTRINGS记忆了添加到列表中的字串。

LBS_WANTKEYBOARDINPUT当有键按下时向父窗口发送

WM_VKEYTOITEM或WM_CHARTOITEM消息。

LBS_NOINTEGRALHEIGHT按程序设定尺寸创建列表框。

八、组合框风格

CBS_AUTOHSCROLL当在行尾输入字符时自动将编辑框中的文字向右滚动。CBS_DROPDOWN同CBS_SIMPLE风格类似,只是只有在用户点击下拉图标时才会显示出下拉列表。

CBS_DROPDOWNLIST同CBS_DROPDOWN类似,只是显示当前选项的编辑框为一静态框所代替。

CBS_HASSTRINGS创建一个包含了由字串组成的项目的拥有者画组合框。CBS_OEMCONVERT将组合框中的ANSI字串转化为OEM字符。

CBS_OWNERDRAWFIXED由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度相同。

CBS_OWNERDRAWVARIABLE由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度可以不同。

CBS_SIMPLE下拉列表始终显示。

CBS_SORT自动对下拉列表中的项目进行排序。

CBS_DISABLENOSCROLL当下拉列表显示内容过少时显示垂直滚动条。

CBS_NOINTEGRALHEIGHT在创建控件时以指定的大小来精确设定组合框尺寸。

九、树形视图控件

TVS_HASLINES在父项与子项间连线以清楚地显示结构.

TVS_LINESATROOT只在根部画线.

TVS_HASBUTTONS显示带有"+"或"-"的小方框来表示某项能否被展开或已展开.

TVS_EDITLABELS用户可以编辑表项的标题.

TVS_SHOWSELALWAYS即使控件失去输入焦点,仍显示出项的选择状态.TVS_DISABLEDRAGDROP不支持拖动操作.

十、列表视图控件

LVS_ALIGNLEFT当显示格式是大图标或小图标时,标题放在图标的左边.缺省情况下标题放在图标的下面.

LVS_ALIGNTOP当显示格式是大图标或小图标时,标题放在图标的上边.LVS_AUTOARRANGE当显示格式是大图标或小图标时,自动排列控件中的表项.

LVS_EDITLABELS用户可以修改标题.

LVS_ICON指定大图标显示格式.

LVS_LIST指定列表显示格式.

LVS_NOCOLUMNHEADER在报告格式中不显示列的表头.

LVS_NOLABELWRAP当显示格式是大图标时,使标题单行显示.缺省时是多行显示.

LVS_NOSCROLL列表视图无滚动条.

LVS_NOSORTHEADER报告列表视图的表头不能作为排序按钮使用.

LVS_OWNERDRAWFIXED由控件的拥有者负责绘制表项.

LVS_REPORT指定报告显示格式.

LVS_SHAREIMAGELISTS使列表视图共享图像序列.

LVS_SHOWSELALWAYS即使控件失去输入焦点,仍显示出项的选择状态.LVS_SINGLESEL指定一个单选择列表视图.缺省时可以多项选择.

LVS_SMALLICON指定小图标显示格式.

LVS_SORTASCENDING按升序排列表项.

LVS_SORTDESCENDING按降序排列表项.

十一、静态文本框风格

SS_CENTER字符居中显示。

SS_LEFT字符左对齐。

SS_LEFTNOWORADWRAP字符左对齐,可处理TAB制表符,不支持自动换行,超过末尾字符被裁剪。

SS_BLACKRECT用窗口边框色填充的矩形。

SS_BLSCKFRAME矩形边框,与窗口边框同色。SS_GRAYRECT用屏幕背景色填充的矩行。SS_GRAYFRAME矩形边框,使用屏幕背景色。SS_WHITERECT用窗口背景色填充的矩行。SS_RIGHT字符右对齐

SS_WHITEFRAME矩形边框,使用窗口背景色。

滑动控件是Windows中最常用的控件之一一般而言它是由一.

滑动控件是Windows中最常用的控件之一。一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示相应的值。滑动控件在应用程序中用途级为广泛,如在桌面的属性中就可以看到。为此,让我们一起来看一下它的实现方法。 (1)在VC++ 6.0中新建一个对话框文档的工程。 (2)打开资源管理器,在对话框中放置一个EDIT控件,然后在它旁边放上一个Slider控件。基本的框架已经完成了。 (3)对Slider控件右击,选择“建立类向导”,对刚才的Slider控件定义一个变量m_Slider,类型为CSliderCtrl。 (4)在对话框初始化的代码BOOL CMy601Dlg::OnInitDialog(),后添加相应的属性。以下是常用的属性设置函数: * GetRange,SetRange函数 用于查询和设置滑动条的取值范围,默认为0~100。函数定义形式如下: void GetRange(int &nMin,int &nMax) const; void SetRange(int nMin,int nMax,BOOL bRedrGETaw=FALSE); * GetPos,SetPos函数 用于查询和设置滑动条的当前值。函数定义形式如下: int GetPos() const; int SetPos(int nPos); * GetLineSize,SetLineSize函数 用于查询和设置在按一下右或左箭头时滑块的移动量,默认为1个单位。函数定义形式如下: int GetLineSize() const; int SetLineSize(int nSize); * GetPageSize,SetPageSize函数 用于查询和设置函滑块和块移动量,块移动量是指当按下PgUp或PgDown时滑块的移动量。函数定义形式如下: int GetPageSize() const; int SetPageSize(int nSize); * SetTicFreq函数 用于设置滑动条刻度的频度。默认为一个单位一个函数。函数定义形式如下: void SetTicFreq(int nFreq); * SetTic函数 用于在指定的位置设置刻度。Windows默认的刻度是均匀的。函数定义形式如下: BOOL SetTic(int nTic); * ClearTics函数 用于清除所有的刻度。函数定义形式如下: void ClearTics(BOOL bRedraw=FALSE); 我们在初始化时写入以下语句: m_Slider.SetRange(-100,100); m_Slider.SetTicFreq(10); 即:设置范围为-100到100,刻度为每10个单位一个。 (5)现在我们加入事件过程代码。 选择Slider的“事件”然后选择第一个过程(NM_CUSTOMDRAW)随后加入以下代码:

Windows 窗体控件介绍

一、BackgroundWorker 组件: 许多经常执行的操作可能需要很长的执行时间。例如: ?图像下载 ?Web 服务调用 ?文件下载和上载(包括点对点应用程序) ?复杂的本地计算 ?数据库事务 ?本地磁盘访问(相对于内存存取来说其速度很慢) 类似这样的操作可能导致用户界面在操作运行时挂起。如果您需要用户界面的响应却遇到与此类操作关联的长时间延迟,BackgroundWorker组件可以提供一种方便的 解决方案。 使用BackgroundWorker组件,您可以在不同于应用程序的主用户界面线程的另一线程上异步(“在后台”)执行耗时的操作。若要使用BackgroundWorker,只需 要告诉该组件要在后台执行的耗时的辅助方法,然后调用RunWorkerAsync方法。在 辅助方法以异步方式运行的同时,您的调用线程继续正常运行。该方法运行完毕,

BackgroundWorker激发RunWorkerCompleted事件(可选择包含操作结果)向调用线 程发出警报。 BackgroundWorker 类允许您在单独的专用线程上运行操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 似乎处于停止响应状 态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则 可以使用 BackgroundWorker 类方便地解决问题。 若要在后台执行耗时的操作,请创建一个 BackgroundWorker,侦听那些报告操作进度并在操作完成时发出信号的事件。可以通过编程方式创建 BackgroundWorker, 也可以将它从“工具箱”的“组件”选项卡中拖到窗体上。如果在 Windows 窗体设 计器中创建 BackgroundWorker,则它会出现在组件栏中,而且它的属性会显示在“属 性”窗口中。 BackgroundWorker类:在单独的线程上执行操作。 二、BindingNavigator 控件(Windows 窗体) BindingNavigator控件是绑定到数据的控件的导航和操作用户界面(UI)。使用BindingNavigator控件,用户可以在Windows 窗体中导航和操作数据。 可使用BindingNavigator控件创建标准化方法,以供用户搜索和更改Windows 窗体中的数据。通常将BindingNavigator与BindingSource组件一起使用,这样用户可以 在窗体的数据记录之间移动并与这些记录进行交互。 BindingNavigator 控件表示在窗体上定位和操作数据的标准化方法。多数情况下,BindingNavigator 与BindingSource控件成对出现,用于浏览窗体上的数据记 录,并与它们交互。在这些情况下,BindingSource属性被设置为作为数据源的关 联System.Windows.Forms.BindingSource组件。 默认情况下,BindingNavigator 控件的用户界面 (UI) 由一系列ToolStrip按钮、文本框和静态文本元素组成,用于进行大多数常见的数据相关操作(如添加数据、 删除数据和在数据中导航)。每个控件都可以通过BindingNavigator 控件的关联成 员进行检索或设置。 BindingNavigator类:表示窗体上绑定到数据的控件的导航和操作用户界面(UI)。 三、BindingSource 组件★ 封装数据源以绑定到控件。 BindingSource组件有两个用途。首先,它提供一个将窗体上的控件绑定到数据的间接层。这是通过将BindingSource组件绑定到数据源,然后将窗体上的控件绑 定到BindingSource组件来完成的。与数据的所有进一步交互(包括导航、排序、 筛选和更新)都是通过调用BindingSource组件来完成的。其次,BindingSource组 件可以充当强类型数据源。使用Add方法向BindingSource组件添加类型会创建一 个该类型的列表。 BindingSource组件用于简化将控件绑定到基础数据源的过程。BindingSource组件既可以作为一个导管,也可以作为一个数据源,其他控件绑定到该数据源。在将命令 传递到基础数据列表时,该组件为您的窗体提供抽象的数据连接。此外,您还可以直 接向该组件添加数据,这样,该组件本身起数据源的作用。 BindingSource类:封装窗体的数据源。 四、Button 控件(Windows 窗体)★

WINDOWS XPE核心组件和常用组件

WINDOWS XPE核心组件和常用组件 Design Templates→Windows-based Terminal Professional xpe的宏组件,有几种,这个是基于基本的windows创建系统时用,其它几种通常是针对特定用途设定的宏组件,包含了一个最小化XPE所必需的基本组件。 Software→System→Storage&File System→Infrastructure→File System→NTFS,所支持的文件系统,也可以选择FAT等,依据目标系统分区。 Software→System→Storage&File System→Applications→NTFS Format,格式化NTFS文件系统的GUI工具,如果文件系统选择的是FAT,这里相应要选上FAT Format。 Software→System→System Services→Base→NT Loader,提供NTLDR。 Software→System→International→Infrastructure→Chinese - Simplified Language Support,提供中文支持; Softwar e→System→International→Infrastructure→Microsoft Simplified Chinese IME Core,中文输入法组件; Software→System→Storage&File System→Infrastructure→File System→CDFS,读取光驱设备; Software→System→Security→Infrastructure→Automatic logon支持自动登陆; Software→System→User Interface→Infrastructure→Shell Application Compatibility 宏组件,如果不是每个都需要,最好按照上面的那样逐个添加。 Software→System→User Interface→Shells→Explorer shell,支持桌面。 Software→System→User Interface→Shells→user interface core,鼠标右键支持,比如组件编辑器的右侧中选中“user interface core”,然后在属性中勾选show context menu on Task bar和show context menu on shell folders,就能支持鼠标右键了。 ★有选择性安装的项目 Software→System→User Interface→Shells→Windows Shell→Task Manager,任务管理器。 在这个子项中你还可以有选择地添加下列组件: Add Hardware Control Panel,添加新硬件;

Windows控件

Windows控件 ●Windows操作系统内置一些界面元素.象Button,List,ComboBox,Edit,Label,Menu等. ●这一些界面元素在MFC的类库里都用对应类来描述,程序通过这一些类来操作界面. ●从类库结构来看,这一些类都从CWnd类继承下来.这个类也是CDialog的基类. ●因此这一些控件除了自已独特界面类型以外,都一些共性. ●在Windows上,一个控件要用数字来表示,通过对这个数字就可以操作控件.在M FC里这个数字一般是在资源编辑器里定义成宏,这样在程序里更加容易阅读和理解 ●所有资源编号定义在res\resource.h ●在.rc里使用是宏定义如,如IDC_BUTTON1 ●在一个CDialog里可以调用GetDlgItem来找出控件的指针,这样用于操作 ●CWnd* GetDlgItem( int nID ) ●最常见的操作就是读取控件的上文本的值 CWnd::GetWindowText(),CWnd::SetWindowText(); ●不同控件读取文本有不同含意,如Label的读文本相当于读标签文本,Edit读文本 相当于编辑框里的值.ComboBox,ListBox相当于读取用户当前选中的文本. ●例,改变一个标签的提示 ●this->GetDlgItem(IDC_LABLE1)->SetWindowText(_T(“hello”)); ●读取一个编辑框的文本值 ●CString tmp = GetDlgItem(IDC_EDIT1)->GetWindowText(); ●这种方法实例上是Windows的方法,而不是C++面向对象的方法 控件对象的创建 ●在MFC中,控件对象的创建方法有两种 ●静态创建,对话框模板上把控件画好.这样当CDialog创建对话框时,自动把控件 创建好. ●这里一种比较简单和常用的创建方法 ●动态创建,即在运行时动态创建.这样可以更加灵活的设计界面,但是代码相对复杂 ●调用BOOL CWnd::Create()或者是派生类同名方法. ●注意把Create和类构造函数区别开来,类构造只是创建对象本身,通知W indows把控件画出来是Create执行的 ●无论动态,静态对控件影响最大的参数是DWORD dwStyle ,用于描述界面风格. ●模板中在属性窗里直接增写 ●Create时作为参数传入

Windows常见窗口样式和控件风格

Windows常见窗口样式和控件风格 一、窗口样式 WS_POPUP弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW子窗口(不能与WS_POPUP合用) WS_MINIMIZE创建窗口拥有最小化按钮 WS_MINIMIZEBOX创建窗口拥有最小化按钮,须同时指定WS_SYSTEM样式WS_VISIBLE可见状态 WS_DISABLED不可用状态 WS_CLIPSIBLINGS使窗口排除子窗口之间的相对区域 WS_CLIPCHILDREN当在父窗口内绘图时,排除子窗口区域 WS_MAXIMIZE具有最大化按钮 WS_MAXIMIZEBOX创建窗口拥有最大化按钮,须同时指定WS_SYSTEM样式WS_CAPTION有标题框和边框(和WS_TILED样式相同) WS_BORDER有单边框 WS_DLGFRAME带对话框边框样式,不带标题框 WS_VSCROLL有垂直滚动条 WS_HSCROLL有水平滚动条 WS_SYSMENU标题框上带有窗口菜单(须指定WS_CAPTION样式) WS_THICKFRAME有可调边框(与WS_SIZEBOX样式相同) WS_TILED与WS_OVERLAPPED风格相同 WS_TILEDWINDOW与WWS_OVERLAPPEDWINDOW风格相同 WS_GROUP组样式,每个组的第一个控件具有WS_TABSTOP样式 WS_TABSTOP可接受TAB键 WS_OVERLAPPED创建一个重叠式窗口,拥有标题栏和边框 WS_POPUPWINDOW-具有单边框,弹出式,系统菜单样式 WS_OVERLAPPEDWINDOW即:WS_OVERLAPPED风格,WS_CAPTION风格,WS_SYSMENU风格,WS_THICKFRAME风格,WS_MINIMIZEBOX风格和WS_MAXIMIZEBOX风格的组合

相关文档