Win32编程:窗口类样式+窗口外观样式+窗口显示样式
1.窗口类样式WNDCLASS.style
|
CS_VREDRAW |
提供窗口位置变化事件和高度变化事件的处理程序,功能是重绘窗口 |
|
CS_HREDRAW |
提供窗口位置变化事件和宽度变化事件的处理程序,功能是重绘窗口 |
|
CS_DBLCLKS |
提供窗口双击事件的处理程序,功能是使窗口在最大化与正常尺寸之间切换 |
|
CS_BYTEALIGNCLIENT |
提供窗口位置变化事件的处理程序,功能是使位置变化后客户区的左边坐标是8的倍数 |
|
CS_BYTEALIGNWINDOW |
提供窗口位置变化事件的处理程序,功能是使位置变化后窗口的左边坐标是8的倍数 |
|
CS_NOCLOSE |
使系统栏上的关闭按钮和系统菜单上的关闭命令失效 |
|
CS_DROPSHADOW |
实现窗体边框阴影效果 |
|
CS_SAVEBITS |
将被窗口遮挡的部分保存为位图,当窗口移开后,用此位图可快速恢复被遮挡的部分。通常菜单栏、对话框及下拉框等需此功能 |
|
CS_OWNDC |
使基于此窗口类的每个窗口都拥有自己的设备描述表 |
|
CS_CLASSDC |
使基于此窗口类的所有窗口都共享一个设备描述表,但同一时刻只能一个窗体操作设备描述表 |
|
CS_PARENTDC |
基于此窗口类的窗口使用其父窗口类的设备描述表(父窗口和子窗口不一定属于同一窗口类) |
|
CS_GLOBALCLASS |
使窗体类是应用程序全局类(一个在进程中对所有模块都有效的exe或dll注册的窗体类) |
此外,移动窗口事件(鼠标移动=鼠标左键按下+鼠标移动+鼠标左键释放,键盘移动=……)是默认支持的(即内置支持的),所以默认事件处理程序是必不可少的,否者程序无法运行。
DefWindowProc(hwnd, uMsg, wParam, lParam);
2.窗口外观样式window style
|
WS_OVERLAPPED=WS_TILED=WS_BORDER|WS_CAPTION WS_OVERLAPPEDWINDOW=WS_TILEDWINDOW=WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX WS_POPUPWINDOW=WS_POPUP|WS_BORDER|WS_SYSMENU |
|
WS_BORDER WS_CAPTION(包含WS_BORDER不能与WS_DLGFRAME共存) WS_DLGFRAME(包含WS_CAPTION不能与WS_CAPTION共存) WS_POPUP(不能与WS_CHILD共存) WS_CHILD=WS_CHILDWINDOW (不能与WS_POPUP共存) |
|
WS_SYSMENU(包含WS_CAPTION,含关闭按钮) WS_THICKFRAME=WS_SIZEBOX(包含WS_CAPTION) |
|
WS_MINIMIZEBOX(包含WS_CAPTION需要指定WS_SYSMENU才有效) WS_MAXIMIZEBOX(包含WS_CAPTION需要指定WS_SYSMENU才有效) WS_VSCROLL(包含WS_CAPTION) WS_HSCROLL(包含WS_CAPTION) WS_MAXIMIZE(包含WS_CAPTION优先纺低于窗口样式SW_XXX) WS_MINIMIZE=WS_ICONIC(包含WS_CAPTION优先纺低于窗口样式SW_XXX) |
|
WS_VISIBLE(EnableWindow) WS_DISABLED(ShowWindow|SetWindowPos) |
|
WS_GROUP(包含WS_CAPTION,指定此属性的控件与之后创建的且未指定此属性的控件属于同一组) WS_TABSTOP(包含WS_CAPTION,指定此属性的同一组的控件之间可通过Tab键切换聚焦) |
|
WS_CLIPSIBLINGS(包含WS_CAPTION,作为子窗口当重绘时不重绘被其它子窗口遮挡的区域) WS_CLIPCHILDREN(包含WS_CAPTION,作为父窗口当重绘时不重绘制被子窗口遮挡的区域) |
3.窗口显示样式
Win32编程:窗口类样式+窗口外观样式+窗口显示样式的更多相关文章
- MFC注册窗口类以及FindWindow按窗口类名查询(避免用#32770获取窗口句柄)
呵呵,最近在研究SendMessage函数,其中需要用到m_hWnd,之后延伸着又尝试获得窗口的句柄,于是遇到了FindWindow函数,原型如下: HWND FindWindow ( LPCSTR ...
- MFC注册窗口类以及FindWindow按窗口类名查询
很多玩游戏的人都知道一般游戏客户端程序是不允许双开的,就是说在同一游戏在启动的时候,是无法打开多个窗口.很多其他软件如酷狗播放器等也是这样.如果把打开的窗口最小化,这时重新启动程序,最小化的窗口会被显 ...
- 探索Win32系统之窗口类(转载)
Window Classes in Win32 摘要 本文主要介绍win32系统里窗口类的运做和使用机制,探索一些细节问题,使win32窗口类的信息更加明朗化. 在本文中,"类", ...
- Win32编程API 基础篇 -- 2.一个简单的窗口 根据英文教程翻译
一个简单的窗口 例子:简单的窗口 有时人们在IRC提问,”我应该怎样制作一个窗口”...嗯,这恐怕不是完全这么简单好回答!其实这并不难一旦你明白你在做什么,但在你得到一个可展示的窗口之前还有一些事情需 ...
- 12 Windows编程——子窗口和系统内置窗口类“BUTTON”
创建子窗口类,使得子窗口有自己的处理过程. 子窗口类型WS_CHILD不能和WS_POPUP一起使用!为什么子窗口要有自己的处理过程?如果使用主窗口类来创建子窗口,那么子窗口和主窗口将公用窗口处理过程 ...
- 窗口类(Window Class)概述
windows窗口编程(通常意义上的win32)有几个比较核心的概念:入口函数WinMain.窗口类Window Class.窗口过程.消息处理机制.通用控件.本文主要介绍窗口类的相关概念,包括: 窗 ...
- Win32汇编学习(3):简单的窗口
这次我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口,以此根据代码来学习如何创建一个简单的窗口. 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows ...
- ATL7窗口类详细剖析
前言: ATL是微软继MFC之后提供的一套C++模板类库,小巧.精妙.效率极高.它的主要作用是为我们编写COM/DOM/COM+程序提供了丰富的支持.但是ATL只能写COM么?我以前只是MFC程序员的 ...
- 窗口的子类化与超类化——子类化是窗口实例级别的,超类化是在窗口类(WNDCLASS)级别的
1. 子类化 理论:子类化是这样一种技术,它允许一个应用程序截获发往另一个窗口的消息.一个应用程序通过截获属于另一个窗口的消息,从而实现增加.监视或者修改那个窗口的缺省行为.子类化是用来改变或者扩展一 ...
- Window 窗口类
窗口类 WNDCLASS 总结 总结为下面的几个问题: . 什么是窗口类 . 窗口类的三种类型 . 窗口类各字段含义 . 窗口类的注册和注销 . 如何使用窗口类,子类化.超类化是什么 下面分别描述: ...
随机推荐
- Nodejs学习笔记(一)--- 简介及安装Node.js开发环境
目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...
- vs2013 遇到的web性能记录器无法使用问题
诊断和修复Web测试记录栏的问题.自2005年以来VSTS运也出现了各种由客户多年来提出不同的问题.记录Web测试时,这在一定程度经常提到的一个话题是一个残疾或不存在的Web测试记录吧.因为它可以令人 ...
- IE下只读INPUT键入BACKSPACE 后退问题(readonly='true')
在IE下,如果在readonly的input里面键入backspace键,会触发history.back(), 用以下jquery代码修正之 $("input[readOnly]" ...
- 在中心交换机前加入多wan口路由,华为中心交换机的学习
1.前期经过学习,好多笔记不记得了.要慢慢实践,实战中学习一遍, 2.真实情况看图 3.我们没有接路由器的时候,连接cosle口入中心交换机.telnet上去. 命令行:sys_view undo i ...
- Excel Access 新建空白文档/打开已有文档 提示内存或磁盘空间不足的解决方法--验证
服务器上发现,打开mdb数据库,点知道只有个空白的截面,打开已有的excel文件,一样,但多了个提示:内存磁盘空间不足或者关闭不再使用的工作表或者程序.检查过,内存和磁盘很充裕啊.那里不足啊,任务管理 ...
- What is Requirement ?
The IEEE 610 standard defines a requirement as: (1). a condition or capability needed by a user to s ...
- lua class(table)
自己看吧: Base = {x = 0,y = 0} ---原型表 Base.name = "luohai"Base.age = 22Base.sex = "man&qu ...
- Maven生命周期详解
来源:http://juvenshun.iteye.com/blog/213959 Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解 ...
- vim替换指令备忘
1. 替换当前行中的内容: :s/from/to/ (s即substitude) :s/from/to/ : 将当前行中的第一个from,替换成to.如果当前行含有多个 ...
- bootstrap-8
基本按钮: bootstrap框架V3.x版本的基本按钮和V2.x版本的基本按钮一样,都是通过类名.btn来实现,不同的是V3.x版本要简约很多,去除V2.x版本中的大量的CSS3的部分特效. 默认按 ...