/* 窗口样式参考列表(都是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. NLog 安装使用

    1:安装 Install-Package NLog.Config 或 通过Nuget 2:Log levels Trace 非常详细的信息,一般在开发时使用. Debug 比Trace稍微少一点一般不 ...

  2. JSP include HTML出现乱码

    解决方法:在项目的web.xml中加入下面语句:<jsp-config>     <jsp-property-group>     <description>    ...

  3. easyui中datagrid标题居中内容居左实现方式

    easyui中的datagrid使用起来,确实还是挺轻巧方便,但是其中也有不少的问题,尤其遇到客户的一些特殊的需求时往往实现得不是很好.这个时候就需要我们自己动手来修改easyui的源码了.easyu ...

  4. ipad屏幕旋转后的代理

    - (void)statusBarOrientationChange:(NSNotification *)notification {         UIInterfaceOrientation o ...

  5. 使用bind()扩充作用域

    window.color = "blue"; var o = {color :"red"}; function sayColor(){ alert(this.c ...

  6. jQuery慢慢啃之工具(十)

    1.jQuery.support//一组用于展示不同浏览器各自特性和bug的属性集合 2.jQuery.browser//浏览器内核标识.依据 navigator.userAgent 判断. 可用值: ...

  7. ubuntu安装配置搜狗拼音输入法

    进入下载目录,在终端执行安装 $sudo dpkg  -i   sogou_pinyin_linux_1.0.0.0033_amd64.deb 安装过程会出现 依赖关系问题 2 修复依赖关系完成搜狗拼 ...

  8. 微信菜单开发:使用PHP数组来定义微信菜单

    目前使用数组的方式来定义,然后在通过json_encode函数来转JSON $menuJson=array(); $menuJson['button'][]=array('name'=>urle ...

  9. ExecuteReader

    最近在做winform的编程,想到一真没有使用过ExecuteReader.可能以前以后它的用户不大,或者 不大好用,故没有用过.今天在这里将学习记录写下来,供读者参考: 1.MSDN上说:Sends ...

  10. Python深入学习笔记(二)

    计数器Counter Counter类是自Python2.7起增加的,属于字典类的子类,是一个容器对象,主要用来统计散列对象,支持集合操作+.-.&.|,其中后两项分别返回两个Counter对 ...