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 ...
随机推荐
- SVN/GIT源代码泄露
造成SVN源代码漏洞的主要原因是管理员操作不规范.在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息.但一些网站管理员在发布代码时,不愿意使用‘导出’功能 ...
- 查找字符串(C++实现)
查找字符串(C++实现),不使用库函数: // SubString.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...
- DNS服务器安装配置案例详解
案例配置要求:假设有一个域名:tianyik.com主机为:192.168.31.36 mail 192.168.31.37 www 192.168.31.38 pop --> ...
- Navicat 看历史执行SQL
Navicat可以通过这个框口看手动操作所执行的代码操作
- SQL 建立临时表进行查询
SELECT min (maxrank) as minofmaxrank FROM (SELECT max(rank) as maxrank FROM tbl_core_staff WHERE st_ ...
- [XML] Resource帮助类
点击下载 Resources.rar /// <summary> /// 类说明:Resources /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更新网站:[u ...
- python基础知识十
特殊的方法 在类中有一些特殊的方法具有特殊的意义,比如__init__和__del__方法,它们的重要性我们已经学习过了. 一般说来,特殊的方法都被用来模仿某个行为.例如,如果你想要为你的类使用x[k ...
- Twisted介绍
Twisted诞生于2000年初,作者为Glyph,目的是为了开发网络游戏. Twisted的历史 Glyph开始采用Java多线程,来开发Twisted Reality,结果多线程使得开发变得复杂, ...
- 关于iOS元旦http,https的规定,官方论坛回应
先贴原文地址:https://forums.developer.apple.com/thread/48979#146140 原文: eskimoAug 2, 2016 4:17 AM(in respo ...
- 如何写类库方法、属性等的注释,才能在其他地方调用dll文件时,在代码里出现智能提示?
我的本意是想整理下以往写过的代码库,给自己的代码增加复用性.一段时间后,可能自己对写过的代码是什么含义会忘掉,或者别人看自己的代码, 增加可懂性的考虑,决定要添加注释.(好像语句不通:)可是发现,在其 ...