windows编程——窗口样式

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

     Windows编程中,创建窗口的样式主要有三大类,即普通样式、扩展样式以及控件样式。获取当前窗口样式的方式如下:     

<pre name="code" class="cpp">GetWindowLong(hwnd,GWL_STYLE);//hwnd窗口句柄


设置当前窗口样式:

<pre name="code" class="cpp">SetWindowLong(hwnd,GWL_STYLE,dwNewStyle);//dwNewStyle新的窗口样式


一、普通样式列表

WS_POPUP - 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)

WS_CHILDWINDOW - 子窗口(不能与WS_POPUP合用)
WS_MINIMIZE - 最小化状态
WS_VISIBLE - 可见状态
WS_DISABLED - 不可用状态
WS_CLIPSIBLINGS - 使窗口排除子窗口之间的相对区域
WS_CLIPCHILDREN - 当在父窗口内绘图时,排除子窗口区域
WS_MAXIMIZE - 具有最大化按钮,须指定WS_SYSTEM样式
WS_CAPTION - 有标题框和边框(和WS_TILED样式相同)
WS_BORDER - 有单边框
WS_DLGFRAME - 带对话框边框样式,不带标题框
WS_VSCROLL - 有垂直滚动条
WS_HSCROLL - 有水平滚动条
WS_SYSMENU - 标题框上带有窗口菜单(须指定WS_CAPTION样式)
WS_THICKFRAME - 有可调边框(与WS_SIZEBOX样式相同)
WS_GROUP - 组样式,每个组的第一个控件具有WS_TABSTOP样式
WS_TABSTOP - 可接受TAB键焦点
WS_MINIMIZEBOX - 有最小化按钮
WS_MAXIMIZEBOX - 有最大化按钮
WS_OVERLAPPEDWINDOW - 具有层叠,标题框,系统菜单,可调边框,系统按钮
WS_POPUPWINDOW - 具有单边框,弹出式,系统菜单样式
二、扩展样式列表
WS_EX_DLGMODALFRAME - 带双层边框
WS_EX_NOPARENTNOTIFY - 创建/销毁时不通知父窗口
WS_EX_TOPMOST - 窗口置顶(停留在所有非最高层窗口的上面)
WS_EX_ACCEPTFILES - 可接受文件拖放
WS_EX_TRANSPARENT - 透明样式,在同属窗口已重画时该窗口才可重画
WS_EX_MDICHILD - MDI子窗口样式
WS_EX_TOOLWINDOW - 工具条窗口样式
WS_EX_WINDOWEDGE - 带凸起边缘的边框
WS_EX_CLIENTEDGE - 带阴影的边缘
WS_EX_CONTEXTHELP - 有上下文帮助样式,标题栏包含一个问号标志
WS_EX_RIGHT - 右对齐
WS_EX_RTLREADING - 窗口文本从右到左显示
WS_EX_LEFTSCROLLBAR - 垂直滚动条在窗口左边界
WS_EX_CONTROLPARENT - 允许用户使用TAB键在窗口的子窗口间搜索
WS_EX_STATICEDGE - 当窗口为不可用状态时创建一个三维边缘
WS_EX_APPWINDOW - 当窗口可见时将一个顶层窗口放置在任务栏上
WS_EX_OVERLAPPEDWINDOW - 带凸起边缘的边框,边缘有阴影
WS_EX_PALETTEWINDOW - 带立体边框,有工具条窗口样式,窗口在顶层
WS_EX_LAYERED - 分层或透明窗口,该样式可使用混合特效
WS_EX_NOINHERITLAYOUT - 子控件不继承窗体或控件的布局
WS_EX_LAYOUTRTL - 窗体或控件将具有从右向左的布局(因而会被镜像)
WS_EX_COMPOSITED - 用双缓冲从下到上绘制窗口的所有子孙(WinXP以上)

WS_EX_NOACTIVATE - 处于顶层但不激活

三、控件样式参考列表:
ES_LEFT - 左对齐
ES_CENTER - 居中对齐
ES_RIGHT - 右对齐
ES_MULTILINE - 多行
ES_UPPERCASE - 全部大写
ES_LOWERCASE - 全部小写
ES_PASSWORD - 密码框
ES_AUTOVSCROLL - 自动垂直滚动
ES_AUTOHSCROLL - 自动水平滚动
ES_NOHIDESEL - 始终显示选中部分
ES_OEMCONVERT - 允许ANSI和OEM互相转换
ES_READONLY - 只读
ES_WANTRETURN - 可接受回车换行
ES_NUMBER - 只接受数字输入
前端学习(2272)vue造轮子之代码优化 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> &l 阅读详情

相关推荐

Windows窗口编程避坑:SetParent函数修改父窗口时,为什么你的窗口样式会‘打架’?

本文深入解析Windows窗口编程中SetParent函数使用时的窗口样式冲突问题,探讨WS_POPUP与WS_CHILD样式的差异及其同步机制。通过实战案例演示如何正确修改窗口样式并处理DPI感知模式,避免常见的窗口行为异常问题,提升GUI开发效率。

weixin_28726671的博客 323

MFC 窗口风格 超详细

窗口风格(Window style) WS_BORDER: 有边框窗口 WS_CAPTION:必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用。指示窗口包含标题要部分。 WS_CHILD:说明窗口为子窗口,不能应用于弹出式窗口风格(WS_POPUP)。 WS_CHILDWINDOW:同WS_CHILD。 WS_CLIPCHILDREN:绘制父窗口时,不绘制子窗口的裁剪区域。使用在建立父窗口时。 WS_CLIPSIBLINGS :剪裁相关的子...

4268

Windows窗口样式

/* 窗口样式参考列表:WS_POPUP - 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW - 子窗口(不能与WS_POPUP合用)WS_MINIMIZE - 最小化状态WS_VISIBLE - 可见状态WS_DISABLED - 不可用状态WS_CLIPSIBLINGS - 使窗口排除子窗口之间的相对区域WS_CLIPCHILDREN - 当在父窗口

桂林哈秋 - 我想学编程 1297

Windows样式

窗口样式 常量 描述 WS_BORDER 窗口有一个细线边框。 WS_CAPTION 窗口有一个标题栏 WS_CHILD 窗口为一个子窗口,该窗口没有菜单栏,该样式不能和WS_POPUP一起使用。 WS_CHILDWINDOW 同WS_CHILD WS_CLIPCHILDREN 当绘制行为在父窗口中进行时排除被子窗口占据的区域。该样式在创建父窗口的时候使用。 WS_CLIPSIBLINGS 当一个特定的子窗口接收了一个WM_PAINT消息,WS_CLIPSIBLINGS样

知其然而后知其所以然 788

WM_ENABLE 消息为什么不能正常工作,而WindowEnable()却正常?

首先我们在处理WM_ENABLE的消息之前应该做的是修改控件的样式,并添加 WS_DISABLED 样式,然后调用SendMessage消息,并将事件设置为WM_ENABLE,wParam值设置为FALSE,这时禁用控件的消息才会响应,反之亦然。所以WS_DISABLED和WM_ENABLE协同工作。现在你应该知道为什么WM_ENABLE 在我的程序中不起作用了。那么 :: IsWindowEnabled呢?总而言之,我们可以说WS_DISABLED控制着行为,而 WM_ENABLE 负责绘画。

weixin_38901498的博客 421

Windows窗口编程避坑:SetParent函数修改父窗口,为什么你的窗口样式会‘打架’?

本文深入解析Windows窗口编程中SetParent函数修改父窗口时常见的窗口样式冲突问题,揭示其根源在于WS_CHILD/WS_POPUP样式位与DPI感知模式的协同处理不当。通过详细分析SetParent函数的隐藏行为、样式同步的正确实践以及DPI同步策略,帮助开发者避免窗口样式‘打架’的常见陷阱,提升窗口管理的稳定性和兼容性。

weixin_30457465的博客 577

Windows核心编程_让窗口跟随系统样式变化

当我们使用 VS 编写win32程序时,窗口会有点丑,这个是因为GDI库,Windows有自己的UI库代码,但是版本很多,不同内核版本使用的GUI库不一样,一般vs在编译win32程序时会给你加载一个通用的组件GUI库来绘制,但是窗口dlg一般会跟随系统,系统会给你加载一个版本较低的组件GUI库,因为Windows向前兼容,会加载xp时代的库,显示会略丑! 使用编译指令选择gui库: #pr...

17岁boy的博客 846

win32窗口样式

Private Const GWL_STYLE = (-16)             '窗口样式 '窗口风格 Private Const WS_CAPTION = &HC00000         '带标题栏的窗口 Private Const WS_MAXIMIZEBOX = &H10000      '带最大化按钮的窗口 Private Const WS_MINIMIZEBOX = &

RojerAlone的博客 3261

C++Windows编程之创建窗口

Windows编程之注册窗口类介绍了注册窗口类。接下来就是创建窗体。     我们用Visual Studio创建一个win32项目上会自动生成一个创建窗体函数。如下: < // 函数: InitInstance(HINSTANCE, int) // // 目的: 保存实例句柄并创建主窗口 // // 注释: // // 在此函数中,我们在全局变量中保存实例句柄并 /

1万+

Windows编程日志2

本文介绍了Windows应用程序开发的基本流程,重点讲解了创建窗口的五个关键步骤:定义窗口类、注册窗口类、创建窗口实例、显示更新窗口以及建立消息循环。通过一个简单的代码示例,展示了如何使用Win32 API创建基本窗口程序。文章还分析了Windows编程的特点,包括大量使用结构体、严格的函数调用顺序、事件驱动的消息处理机制以及丰富的样式常量。这些内容为初学者理解Windows GUI编程提供了实用指导。

charlie114514191的博客 447

CreateEx函数的窗口样式(来自http://technet.microsoft.com/zh-cn/subscriptions/czada357.aspx)

窗口样式 WS_BORDER 创建具有边框的窗口。 WS_CAPTION 创建具有标题栏的窗口 (即表示 WS_BORDER 样式)。 不能使用 WS_DLGFRAME 样式。 WS_CHILD 创建子窗口。 不能使用 WS_POPUP 样式。 WS_CHILDWINDOW 和 WS_CHILD 样式相同。 ,在父窗口中,绘

沐埜专栏 1345

Windows窗口属性和拓展属性

最近在学Windows编程,自己整理了翻译了一下MSDN上的Window Style和Window Ex Style(Ps:英语水平有限,翻译可能有一些错误,欢迎勘正) Window Styles:   WS_BORDER    0X00800000L        创建一个有边框的窗口   WS_CAPTION   0X00C00000L         创建一个带有标题栏的窗口

diaolingle的专栏 4956

如何修改窗口或控件的样式

本人描述了如何修改窗口或者控件样式的接口

_Santiago的博客 945

Windows窗口分析

(本文尝试通过一些简单的实验,来分析Windows窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++、Windows编程及MFC经验,还得有一定动手能力。文中可能出现一些术语不统一的现象,比如“子窗口”,有时候我写作“child window”,有时候写作“child”,我想应该不会有太大影响,文章太长,不一一更正了) 问题开始于我的最近的一次开发经历,我打算把程序的一部分界面放在

Qsir的专栏 1301

Window窗口类型

在编写程序时有很多的窗口风格不知道是什么意思,我罗列一些: WS_BODER 窗口具有细线边框 WS_CAPTION 窗口具有标题栏(包含 WS_BODER) WS_CHILD 创建一个子窗口(此风格不能与 WS_POPUP 一起使用 ) WS_CHILDWINDOW 与 WS_CHILD 相同 WS_CLIPHILDREN 当在父窗口中画图时,绕开子窗口占有的区域。 WS_

zhubo22的专栏 583

「Win」WindowsAPI 之 CreateWindowEx 创建一个重叠窗口、弹出窗口或子窗口

函数用于创建一个重叠窗口、弹出窗口或子窗口。它可以指定窗口的扩展样式,而基础的函数是其功能子集(扩展样式为 0)。在现代 Win32 编程中,是首选。[in] DWORD dwExStyle, // 扩展窗口样式[in, optional] LPCWSTR lpClassName, // 窗口类名[in, optional] LPCWSTR lpWindowName, // 窗口标题[in] DWORD dwStyle, // 窗口样式[in] int X, // 初始 X 坐标。

何曾参静谧的博客 1246

Windows窗口编程之计算机,WindowsAPI窗口程序设计.docx

For personal use only in study and research; not for commercial use莃集美大学计算机袁羅课程名称:TCP/IP协议分析与编程蚈袃实验项目名称:Windows API窗口程序设计薅实验项目编号:01、二、肄实验目的莄运用Windows API进行编程工程学院实验报告螆班级:肃实验成绩:莈膆螀学号:蒆上机实践日期:242016-03-薄...

weixin_33378570的博客 201

MFC改变窗口样式

SetWindowLong()---在OnCreate()中SetClassLong()GetWindowLong()AfxRegisterClass();--------返回样式在PreCreateWindow()中,cs...=....注意:创建前修改样式和创建后修改。框架窗口---图标,标题--光标和背景--视图注意:透明背景的构造,NULL画刷

十年一剑 2024
上一篇: VS2008 windows服务编程实现
下一篇: windows编程——SetWindowPos的用法
Elly111
博客等级 码龄13年 13粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值