Delphi WinAPI Window Styles窗体风格


{该文首发于博客园 滔Roy,无须授权即可转发,请自觉保留头部申明}

Delphi WinAPI Window Styles 窗体风格

1、Window Styles 窗体风格 

以下是窗口样式。创建窗口后,不能修改这些样式,除非另有说明。

  • WS_BORDER //该窗口的边框很细。
  • WS_CAPTION //该窗口有一个标题栏(包括WS_BORDER样式)。
  • WS_CHILD //该窗口是子窗口。具有这种样式的窗口不能有菜单栏。此样式不能与WS_POPUP样式一起使用。
  • WS_CHILDWINDOW //与WS_CHILD样式相同。
  • WS_CLIPCHILDREN //在父窗口中进行绘图时,排除子窗口占用的区域。创建父窗口时使用此样式。
  • WS_CLIPSIBLINGS //相对于彼此剪裁子窗口;也就是说,当特定的子窗口接收到WM_PAINT消息时,WS_ClipSpilings样式会将所有其他重叠的子窗口从要更新的子窗口区域中剪切出去。如果未指定WS_CLIPSIBLINGS且子窗口重叠,则在子窗口的客户区内绘制时,可以在相邻子窗口的客户区内绘制。
  • WS_DISABLED //窗口最初被禁用。禁用的窗口无法接收用户的输入。要在创建窗口后更改此设置,请使用EnableWindow函数。
  • WS_DLGFRAME //窗口的边框通常与对话框一起使用。具有此样式的窗口不能有标题栏。
  • WS_GROUP //窗口是一组控件中的第一个控件。该组由第一个控件及其后定义的所有控件组成,直到下一个具有WS_GROUP样式的控件。每个组中的第一个控件通常具有WS_TABSTOP样式,以便用户可以从一个组移动到另一个组。用户随后可以使用方向键将键盘焦点从组中的一个控件更改为组中的下一个控件。可以打开和关闭此样式来更改对话框导航。要在创建窗口后更改此样式,请使用SetWindowLong函数。
  • WS_HSCROLL //该窗口有一个水平滚动条。
  • WS_ICONIC //窗口最初是最小化的。与WS_MINIMIZE样式相同。
  • WS_MAXIMIZE //窗口最初是最大化的。
  • WS_MAXIMIZEBOX //这个窗口有一个最大化按钮。不能与WS_EX_CONTEXTHELP样式组合。还必须指定WS_SYSMENU样式。
  • WS_MINIMIZE //窗口最初是最小化的。与WS_ICONIC风格相同。
  • WS_MINIMIZEBOX //这个窗口有一个最小化按钮。不能与WS_EX_CONTEXTHELP样式组合。还必须指定WS_SYSMENU样式。
  • WS_OVERLAPPED //这个窗口是一个重叠的窗口。重叠窗口有一个标题栏和边框。与WS_TILED风格相同。
  • WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX) //这个窗口是一个重叠的窗口。与WS_TILED样式相同。
  • WS_POPUP //这个窗口是一个弹出窗口。此样式不能与WS_CHILD一起使用。
  • WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU) //这个窗口是一个弹出窗口。WS_CAPTION和WS_POPUPWINDOW样式必须结合使用,以使窗口菜单可见。
  • WS_SIZEBOX //窗口有一个大小边框。与WS_THICKFRAME样式相同。
  • WS_SYSMENU //窗口的标题栏上有一个窗口菜单。还必须指定WS_CAPTION样式。
  • WS_TABSTOP //当用户按下TAB键时,窗口是一个可以接收键盘焦点的控件。按TAB键将键盘焦点更改为具有WS_TABSTOP样式的下一个控件。可以打开和关闭此样式来更改对话框导航。要在创建窗口后更改此样式,请使用SetWindowLong函数。要让用户创建的窗口和无模式对话框使用制表位,请更改消息循环以调用IsDialogMessage函数。
  • WS_THICKFRAME //窗口有一个大小边框。与WS_SIZEBOX风格相同。
  • WS_TILED //这个窗口是一个重叠的窗口。重叠窗口有一个标题栏和边框。与WS_OVERLAPPED样式相同。
  • WS_TILEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX) //这个窗口是一个重叠的窗口。与WS_OVERLAPPEDWINDOW样式相同。
  • WS_VISIBLE //窗口最初是可见的。
  • WS_VSCROLL //该窗口有一个垂直滚动条。

2、Extended Window Styles 扩展窗口样式

  • WS_EX_ACCEPTFILES //该窗口接受拖放文件。
  • WS_EX_APPWINDOW //当窗口可见时,将顶层窗口强制放到任务栏上。
  • WS_EX_CLIENTEDGE //该窗口有一个凹陷的边缘。
  • WS_EX_COMPOSITED //使用双缓冲按从下到上的绘制顺序绘制窗口的所有子体。自下而上的绘制顺序允许下一个窗口具有半透明(alpha)和透明度(颜色键)效果,但前提是下一个窗口也设置了WS_EX_TRANSPARENT位。双缓冲允许窗口及其子窗口在不闪烁的情况下进行绘制。如果窗口的类样式为CS_OWNDC或CS_CLASSDC,则不能使用此选项。Windows 2000:不支持此样式。
  • WS_EX_CONTEXTHELP //窗口的标题栏包含一个问号。当用户单击问号时,光标将变为带有指针的问号。如果用户随后单击一个子窗口,该子窗口将收到WM_HELP消息。子窗口应将消息传递给父窗口过程,父窗口过程应使用HELP_WM_HELP命令调用WinHelp函数。帮助应用程序显示一个弹出窗口,通常包含子窗口的帮助。WS_EX_CONTEXTHELP不能与WS_MAXIMIZEBOX或WS_MINIMIZEBOX样式一起使用。
  • WS_EX_CONTROLPARENT //窗口本身包含应参与对话框导航的子窗口。如果指定了此样式,则在执行导航操作(如处理TAB键、箭头键或键盘助记符)时,对话框管理器将递归到此窗口的子窗口。
  • WS_EX_DLGMODALFRAME //窗户有两个边框;通过在dwStyle参数中指定WS_CAPTION样式,可以选择使用标题栏创建窗口。
  • WS_EX_LAYERED //该窗口是一个分层窗口。如果窗口的类样式为CS_OWNDC或CS_CLASSDC,则不能使用此样式。Windows 8:顶层窗口和子窗口支持WS_EX_LAYERED样式。以前的Windows版本仅支持顶层Windows的WS_EX_分层。
  • WS_EX_LAYOUTRTL //如果shell语言是希伯来语、阿拉伯语或其他支持阅读顺序对齐的语言,则窗口的水平原点位于右边缘。增加水平值会向左推进。
  • WS_EX_LEFT //该窗口具有通用的左对齐属性。这是默认设置。
  • WS_EX_LEFTSCROLLBAR //如果shell语言为希伯来语、阿拉伯语或其他支持阅读顺序对齐的语言,则垂直滚动条(如果存在)位于客户端区域的左侧。对于其他语言,样式被忽略。
  • WS_EX_LTRREADING //窗口文本使用从左到右的阅读顺序属性显示。这是默认设置。
  • WS_EX_MDICHILD //该窗口是一个MDI子窗口。
  • WS_EX_NOACTIVATE //使用此样式创建的顶级窗口在用户单击时不会成为前景窗口。当用户最小化或关闭前景窗口时,系统不会将此窗口置于前景。该窗口不应通过编程访问或通过可访问技术(如“讲述人”)的键盘导航激活。要激活该窗口,请使用SetActiveWindow或SetForegroundWindow函数。默认情况下,该窗口不会出现在任务栏上。要强制窗口显示在任务栏上,请使用WS_EX_APPWINDOW样式。
  • WS_EX_NOINHERITLAYOUT //窗口不会将其窗口布局传递给其子窗口。
  • WS_EX_NOPARENTNOTIFY //使用此样式创建的子窗口在创建或销毁时不会向其父窗口发送WM_PARENTNOTIFY消息。
  • WS_EX_NOREDIRECTIONBITMAP //窗口不会渲染到重定向曲面。这适用于没有可见内容或使用除表面以外的机制来提供视觉效果的窗口。
  • WS_EX_OVERLAPPEDWINDOW(WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE) //这个窗口是一个重叠的窗口。
  • WS_EX_PALETTEWINDOW(WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST) //该窗口是palette window,这是一个无模式对话框,显示一系列命令。
  • WS_EX_RIGHT //该窗口具有通用的“右对齐”属性。这取决于窗口类。只有当shell语言是希伯来语、阿拉伯语或其他支持阅读顺序对齐的语言时,这种风格才有效;否则,样式将被忽略。对静态控件或编辑控件使用WS_EX_RIGHT样式与分别使用SS_RIGHT或ES_RIGHT样式的效果相同。将此样式与按钮控件一起使用与使用BS_RIGHT和BS_RIGHTBUTTON样式具有相同的效果。
  • WS_EX_RIGHTSCROLLBAR //垂直滚动条(如果存在)位于客户端区域的右侧。这是默认设置。
  • WS_EX_RTLREADING //如果shell语言是希伯来语、阿拉伯语或其他支持阅读顺序对齐的语言,则窗口文本将使用从右到左的阅读顺序属性显示。对于其他语言,样式被忽略。
  • WS_EX_STATICEDGE //该窗口具有三维边框样式,用于不接受用户输入的项目。
  • WS_EX_TOOLWINDOW //该窗口旨在用作浮动工具栏。工具窗口的标题栏比普通标题栏短,窗口标题使用较小的字体绘制。工具窗口不会出现在任务栏或用户按ALT+TAB时出现的对话框中。如果工具窗口具有系统菜单,则其图标不会显示在标题栏上。但是,可以通过右键单击或键入ALT+SPACE来显示系统菜单。
  • WS_EX_TOPMOST //车窗应置于所有非最上面的车窗之上,并应保持在其上方,即使车窗已停用。要添加或删除此样式,请使用SetWindowPos功能。
  • WS_EX_TRANSPARENT //在窗户下方的兄弟姐妹(由同一根线创建)被绘制之前,不应绘制窗户。窗口看起来是透明的,因为底层同级窗口的部分已经被绘制。要在没有这些限制的情况下实现透明度,请使用SetWindowRgn函数。
  • WS_EX_WINDOWEDGE //该窗口有一个带凸起边缘的边框。

 

创建时间:2022.04.18  更新时间:2022.04.21

https://www.cnblogs.com/guorongtao/p/16161085.html