Windows窗口样式速查参考,Delphi窗口控件的风格都有它们来决定,附Delphi何时用到它们,并举例说明good?

/* 窗口样式参考列表(都是GetWindowLong的GWL_STYLE风格,都是TCreateParams.Sytle的一部分),详细列表如下:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms632600(v=vs.85).aspx

WS_POPUP - 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) (THintWindow.CreateParams使用,TCustomForm.CreateParams里的bsNone和bsDialog设置,TApplication窗口也设置这个属性)

WS_CHILDWINDOW - 子窗口(不能与WS_POPUP合用)(Delphi没有用到)

WS_MINIMIZE - 最小化状态 (TCustomForm最小化情况下设置此风格)

WS_VISIBLE - 可见状态(只有MDI需要设置它,不懂)

WS_DISABLED - 不可用状态(TWinControl.CreateParams探测,当不处于设计期,且窗口确实无效,则设置)

WS_CLIPSIBLINGS - 使窗口排除子窗口之间的相对区域 (TWinControl.CreateParams默认风格,MDI和Application也设置这个风格)

WS_CLIPCHILDREN - 当在父窗口内绘图时,排除子窗口区域 (当它可以接受其它子控件时,TWinControl.CreateParams设置,MDI也设置这个风格)

WS_MAXIMIZE - 具有最大化按钮,须指定WS_SYSTEM样式(TCustomForm.CreateParams探测并设置)

WS_CAPTION - 有标题框和边框(和WS_TILED样式相同)(TCustomForm.CreateParams设计期用到,运行期看具体情况。csInline状态下取消此风格。Application也设置)

WS_BORDER - 有单边框(THintWindow.CreateParams设置, TCustomForm.CreateParams处于bsSingle和bsToolWindow时设置)

WS_DLGFRAME - 带对话框边框样式,不带标题框(TCustomForm.CreateParams处于bsDialog,并且不是NewStyleControls时设置)

WS_VSCROLL - 有垂直滚动条(TWinControl.WMNCPaint时探测是否画边,MDI时设置,因为Delphi重定义滚动条,需手动添加,所以窗口默认不设置)

WS_HSCROLL - 有水平滚动条

WS_SYSMENU - 标题框上带有窗口菜单(须指定WS_CAPTION样式)(TCustomForm.CreateParams时设置,设计期设置,Application也设置)

WS_THICKFRAME - 有可调边框(与WS_SIZEBOX样式相同) (TCustomForm.CreateParams处于bsSizeable, bsSizeToolWin时设置)

WS_GROUP - 组样式,每个组的第一个控件具有WS_TABSTOP样式(MDI设置,TCustomForm.CreateParams在父窗口为空时取消设置)

WS_TABSTOP - 可接受TAB键焦点(TWinControl.CreateParams根据属性设置,TCustomForm.CreateParams在父窗口为空时取消设置,MDI时设置)

WS_MINIMIZEBOX - 有最小化按钮(TCustomForm.CreateParams根据属性设置,设计期也设置,Application也设置)

WS_MAXIMIZEBOX - 有最大化按钮(TCustomForm.CreateParams处于bsSingle, bsSizeable, bsNone时设置,设计期设置,注意Application不设置)

WS_OVERLAPPEDWINDOW - 具有层叠,标题框,系统菜单,可调边框,系统按钮(Delphi全部自己控制,所以从未设置,而VC里永远都有)

WS_POPUPWINDOW - 具有单边框,弹出式,系统菜单样式(Delphi里使用全自制的Form,并有自己的showmodal,所以从未设置)

*/

/* 窗口扩展样式参考列表(都是GetWindowLong的GWL_EXSTYLE风格,同时也是TCreateParams.ExStyle的一部分),详细列表如下:

https://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx

WS_EX_DLGMODALFRAME - 带双层边框(bsDialog时设置)

WS_EX_NOPARENTNOTIFY - 创建/销毁时不通知父窗口(Delphi里父窗口是关键,全部自己控制,所以从未设置)

WS_EX_TOPMOST - 窗口置顶(停留在所有非最高层窗口的上面)(全局函数DoFindWindow和GetTopMostWindows用它来判断,TApplication.DoNormalizeTopMosts用它来判断)

WS_EX_ACCEPTFILES - 可接受文件拖放(Delphi从未使用,好奇怪。。。)

WS_EX_TRANSPARENT - 透明样式,在同属窗口已重画时该窗口才可重画(Delphi从未使用,程序员要自己使用API设置才能达到相应效果)

WS_EX_MDICHILD - MDI子窗口样式(Delphi从未使用,好奇怪。。。)

WS_EX_TOOLWINDOW - 工具条窗口样式,也可在任务栏隐藏程序图标(THintWindow.CreateParams处于NewStyleControls时设置)

WS_EX_WINDOWEDGE - 带凸起边缘的边框(bsDialog时设置)

WS_EX_CLIENTEDGE - 带阴影的边缘(TWinControl.PaintTo用它进行判断,ShowMDIClientEdge根据条件设置,TScrollBox.CreateParams设置,MDI设置)

WS_EX_CONTEXTHELP - 有上下文帮助样式,标题栏包含一个问号标志(TCustomForm.CreateParams在菜单里有biHelp时设置)

WS_EX_RIGHT - 右对齐(TWinControl.AddBiDiModeExStyle根据属性设置,TCustomForm.CMBiDiModeChanged改变设置)

WS_EX_RTLREADING - 窗口文本从右到左显示(TWinControl.AddBiDiModeExStyle根据属性设置,TCustomForm.CMBiDiModeChanged改变设置)

WS_EX_LEFTSCROLLBAR - 垂直滚动条在窗口左边界(TWinControl.AddBiDiModeExStyle根据属性设置,TCustomForm.CMBiDiModeChanged改变设置)

WS_EX_CONTROLPARENT - 允许用户使用TAB键在窗口的子窗口间搜索(TWinControl.CreateParams在具有csAcceptsControls风格时设置)

WS_EX_STATICEDGE - 当窗口为不可用状态时创建一个三维边缘(Delphi从未使用)

WS_EX_APPWINDOW - 当窗口可见时将一个顶层窗口放置在任务栏上(Delphi从未使用)

WS_EX_OVERLAPPEDWINDOW - 带凸起边缘的边框,边缘有阴影(Delphi从未使用)

WS_EX_PALETTEWINDOW - 带立体边框,有工具条窗口样式,窗口在顶层(Delphi从未使用)

WS_EX_LAYERED - 分层或透明窗口,该样式可使用混合特效(TCustomForm.CreateWindowHandle取消设置,相当于Form默认不透明,TCustomForm.SetLayeredAttribs重新设置,TCustomForm.InitAlphaBlending重新设置)

WS_EX_NOINHERITLAYOUT - 子控件不继承窗体或控件的布局(Delphi从未使用)

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

WS_EX_COMPOSITED - 用双缓冲从下到上绘制窗口的所有子孙(WinXP以上)(Delphi从未使用,因为Delphi自己使用DoubleBuffered属性进行控制)

WS_EX_NOACTIVATE - 处于顶层但不激活(Delphi从未使用)

*/

/* 控件样式参考列表(这些风格都是TCreateParams.Style的一部分,如果它们可以被使用的话),详细列表如下:

https://msdn.microsoft.com/en-us/library/windows/desktop/ff729172(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/windows/desktop/ms644994(v=vs.85).aspx

DS_ABSALIGN - 对话框的坐标为屏幕坐标(缺省为客户区坐标)(Delphi从未使用)

DS_SYSMODAL - 系统模式(仅支持16位程序),不能与DS_CONTROL同用(Delphi从未使用)

DS_LOCALEDIT - 在对话框内部为编辑框分配内存(仅支持16位程序)(Delphi从未使用)

DS_SETFONT - 可定制对话框字体(Delphi从未使用)

DS_MODALFRAME - 框架样式(不能与WS_CAPTION同用)(TCustomForm.CreateParams在bsDialog并且不是NewStyleControls时设置,但事实是WS_CAPTION很重要,所以几乎不用,只是为了兼容旧版windows界面)

DS_NOIDLEMSG - 无空闲消息(Delphi从未使用)

DS_SETFOREGROUND - 使对话框在最前面显示(Delphi从未使用)

DS_3DLOOK - 四周有3维边框(Delphi从未使用)

DS_FIXEDSYS - 使用系统固定字体(Delphi从未使用)

DS_NOFAILCREATE - 忽略创建过程中的错误(Delphi从未使用)

DS_CONTROL - 控件模式,可作为其他对话框的子窗口(Delphi从未使用)

DS_CENTER - 在屏幕居中(Delphi从未使用)

DS_CENTERMOUSE - 在鼠标位置居中(Delphi从未使用)

DS_CONTEXTHELP - 有上下文帮助按钮(Delphi从未使用)

以前做的笔记,都快忘了:http://www.cnblogs.com/findumars/p/3970638.html

另外还有:http://www.cnblogs.com/key-ok/p/3428858.html