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
Windows窗口样式速查参考,Delphi窗口控件的风格都有它们来决定(附Delphi何时用到它们,并举例说明)good的更多相关文章
- Windows 7样式地址栏(Address Bar)控件实现
介绍 从Vista开始,地址栏就有了很大的改变,不知道大家有什么感觉,笔者觉得很方便,同时又兼容之前的功能,是个很不错的创新.不过,微软并不打算把这一很酷的功能提供给广大的开发人员. 本文提供了一个简 ...
- <总结>delphi WebBrowser控件的使用中出现的bug
Delphi WebBrowser控件的使用中出现的bug: 1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...
- 使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点
原文:使用 SetParent 制作父子窗口的时候,如何设置子窗口的窗口样式以避免抢走父窗口的焦点 制作传统 Win32 程序以及 Windows Forms 程序的时候,一个用户看起来独立的窗口本就 ...
- Delphi让控件随着窗口的大小而改变
Delphi让控件随着窗口的大小而改变方法1:设置Anchors属性,把akLeft,akTop,akRight,akBottom都设为True.方法2:设置Align属性,其值为alClient.
- Delphi WebBrowser控件的使用(大全 good)
Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDis ...
- Delphi对于控件的SuperClassing(封装并扩展Button,使之变成TButton)
写博客写了这么久,但是一直不知道应该怎么样写函数之间的调用关系和执行顺序,因为不停的跳来跳去的,但是写的时候却只能顺序写调用关系,直到今天发现这种写法很不错: TButton创建窗口是在CreateW ...
- 教程-Delphi第三方控件安装卸载指南
1 只有一个DCU文件的组件.DCU文件是编译好的单元文件,这样的组件是作者不想把源码公布.一般来说,作者必须说明此组件适合Delphi的哪种版本,如果版本不对,在安装时就会出现错误.也正是因为没有源 ...
- Delphi TcxtreeList控件说明 转
Delphi TcxtreeList控件说明 树.cxTreeList 属性: Align:布局,靠左,靠右,居中等 AlignWithMargins:带边框的布局 Anchors:停靠 (akT ...
- delphi按钮控件的default属性
delphi按钮控件的default属性用于设置默认命令按钮,.设置为true时,按[Enter键]相当于用鼠标单击了该按钮 .窗口中如果有多个按钮的default是true的话,就根据tabinde ...
随机推荐
- Android(java)学习笔记195:三重for循环的优化(Java面试题)
1.首先我们看一段代码: for(int i=0;i<1000;i++){ for(int j=0;j<100;j++){ for(int k=0;k<10;k++){ testFu ...
- mysql case when then else end 用法
select case when 判断条件 then 输出结果 else 输出结果 end from table
- CSS伪类选择器和伪元素选择器
CSS的伪类选择器常用的是link/visited/hover/active,分别对应未访问.已访问过.鼠标悬停.鼠标按下时的样式,常用于链接,使用时要按此顺序依次写CSS,不能乱 a:link{ba ...
- Promise的用简要使用方式
Promise用法 在项目中用到异步请求ajax,想到用promise来解决,之前用过但是已经很久了,还是忘了一些,重新熟悉了一下整理一份简要文档. Promise,就是一个对象,用来传递异步操作的消 ...
- php面向对象设计模式
为什么学习设计模式: 1,更深入的了解面向对象的思想 2,有利于开发出扩展性强的东西 什么是设计模式:经常出现的典型场景的典型解决方案,就是设计模式.举个例子生活中的设计模式:比如泡妞思路,象棋招数等 ...
- IOS-图片上传到服务器
//获取document 路径- (NSString *)getDocumentPath{ NSArray *paths = NSSearchPathForDirectoriesInDomain ...
- cocos2d-x 2.2.0 如何在lua中注册回调函数给C++
cocos2d-x内部使用tolua进行lua绑定,但是引擎并没有提供一个通用的接口让我们可以把一个lua函数注册给C++层面的回调事件.翻看引擎的lua绑定代码,我们可以仿照引擎中的方法来做.值得吐 ...
- Lost connection to MySQL server at ‘reading initial communication packet', system error: 0 mysql远程连接问题
在用Navicat for MySQL远程连接mysql的时候,出现了 Lost connection to MySQL server at ‘reading initial communicatio ...
- 平衡搜索树(三) B-Tree
B树的简介 B 树是为了磁盘或其它存储设备而设计的一种多叉平衡查找树.与红黑树很相似,但在降低磁盘I/0操作方面要更好一些(树的深度较低).许多数据库系统都一般使用B树或者B树的各种变形结构.B树与红 ...
- 关于Apple设备私有的apple-touch-icon属性详解
以前我们用过favicon在浏览器给网站进行身份标识,用法如下: <link href="http://image.feeliu.com/web/favicon.ico" r ...