/* 窗口样式参考列表(都是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

Windows窗口样式速查参考,Delphi窗口控件的风格都有它们来决定(附Delphi何时用到它们,并举例说明)good的更多相关文章

  1. Windows 7样式地址栏(Address Bar)控件实现

    介绍 从Vista开始,地址栏就有了很大的改变,不知道大家有什么感觉,笔者觉得很方便,同时又兼容之前的功能,是个很不错的创新.不过,微软并不打算把这一很酷的功能提供给广大的开发人员. 本文提供了一个简 ...

  2. <总结>delphi WebBrowser控件的使用中出现的bug

    Delphi WebBrowser控件的使用中出现的bug:  1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...

  3. 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点

    原文:使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 制作传统 Win32 程序以及 Windows Forms 程序的时候,一个用户看起来独立的窗口本就 ...

  4. Delphi让控件随着窗口的大小而改变

    Delphi让控件随着窗口的大小而改变方法1:设置Anchors属性,把akLeft,akTop,akRight,akBottom都设为True.方法2:设置Align属性,其值为alClient.

  5. Delphi WebBrowser控件的使用(大全 good)

    Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application      如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDis ...

  6. Delphi对于控件的SuperClassing(封装并扩展Button,使之变成TButton)

    写博客写了这么久,但是一直不知道应该怎么样写函数之间的调用关系和执行顺序,因为不停的跳来跳去的,但是写的时候却只能顺序写调用关系,直到今天发现这种写法很不错: TButton创建窗口是在CreateW ...

  7. 教程-Delphi第三方控件安装卸载指南

    1 只有一个DCU文件的组件.DCU文件是编译好的单元文件,这样的组件是作者不想把源码公布.一般来说,作者必须说明此组件适合Delphi的哪种版本,如果版本不对,在安装时就会出现错误.也正是因为没有源 ...

  8. Delphi TcxtreeList控件说明 转

    Delphi TcxtreeList控件说明   树.cxTreeList 属性: Align:布局,靠左,靠右,居中等 AlignWithMargins:带边框的布局 Anchors:停靠 (akT ...

  9. delphi按钮控件的default属性

    delphi按钮控件的default属性用于设置默认命令按钮,.设置为true时,按[Enter键]相当于用鼠标单击了该按钮 .窗口中如果有多个按钮的default是true的话,就根据tabinde ...

随机推荐

  1. IOS Remote Notification

    1. 本地证书合成 rm *.pem echo "export cert..." openssl pkcs12 -clcerts -nokeys -out push_cert.pe ...

  2. JavaScript入门(1)

    一.JS基本 1.JS代码位置 <script type="text/javascript">表示: <script></script>之间是文 ...

  3. php并发处理

       最近某个项目用php生成文件,但是由于文件量太大,单个进程生成需要很长的时间,所以想并发进行处理.    网上查找了下相关的资料,php本身是没有多线程的概念的,那就只能用多进程了,再找资料却是 ...

  4. java 函数形参传值和传引用的区别

    java方法中传值和传引用的问题是个基本问题,但是也有很多人一时弄不清. (一)基本数据类型:传值,方法不会改变实参的值. public class TestFun { public static v ...

  5. SVN库迁移过程总结

    一.背景:老SVN是安装在32位服务器上:现在64位服务器上安装了新版本SVN服务,所以需要将SVN从老服务器上迁移到新服务器上. 1.SVN Server下载:https://www.visuals ...

  6. 深入理解shared pool共享池之library cache系列一

    结论 1,oradebug dump library_cache不同级别dump的library cache内容及粒度会有所区别,具体见测试开始部分2,本文测示基于oradebug dump libr ...

  7. Java Map集合按照key和value排序之法

    一.理论基点 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black-Tre ...

  8. DFS的基础训练清单

    HDU 1010  (AC) HDU 1015    (AC) HDU 1016     (AC) HDU 1172   (AC) HDU 1312   (AC) POJ 2362  (AC,1011 ...

  9. js 高级函数 之示例

    js 高级函数作用域安全构造函数 function Person(name, age)    {        this.name = name;        this.age = age;     ...

  10. 【转】Hibernate各种主键生成策略与配置详解

    原文转自:Fra~~kaka's Blog 1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无 ...