CS_BYTEALIGNCLIENT:以字节边界来对齐窗口客户区,这个风格会影响 窗口 的宽度和水平位置。实际上没有看到效果。

CS_BYTEALIGNWINDOW:以字节边界来对齐窗口,这个风格会影响窗口的宽度和水平位置。实际上没有看到效果。

CS_CLASSDC:分配一个DC,凡是用这个类的窗口都能共享这个DC。因为窗口类是具体的,所以一个程序的多个线程可以创建同一个类下的多个窗口,也有可能多个线程同时使用同一个DC,在这种情况 下,系统只会让其中一个线程来完成绘画操作。

CS_DBLCLKS:当光标在一个窗口内,并且这个窗口属于这个类的话,鼠标的双击消息会发送到此窗口。

CS_DROPSHADOW:使阴影影响一个窗口,这个影响会被SPI_SETDROPSHADOW打开或者关闭。一般小的、生存期短的窗口比如菜单等为了显示它和其他窗口的Z次序关系。窗口所在的类有这个风格的话,这个窗口一必须是顶级窗口,但不一定是子窗口。使用时,Win7下用具体的数字表示此风格为0x00020000;测试时因为不是菜单窗口,所以也没有看出什么效果。

CS_GLOBALCLASS:指定这个窗口类是个全局类。

CS_HREDRAW:当窗口宽度发生变化时,会引起窗口重画。

CS_VREDRAW:当窗口高度发生变化时,会引起窗口重画。这两个和窗口的风格WS_HREDRAW,WS_VREDRAW好像很像。

CS_NOCLOSE:在窗口的菜单上禁用关闭。使用此风格时,有窗口风格WS_OVERLAPPEDWINDOW的窗口也禁用了关闭按钮。系统菜单上也没有了关闭。

CS_OWNDC:分配一个唯一的DC为每个使用此类的窗口。和CS_CLASSDC相反吗?

CS_PARENTDC:设置子窗口的剪切矩形,以便于子窗体能在父窗口上绘画,有CS_PARENTDC风格的窗口从系统DC的缓冲区里得到一个DC,这不会把父窗体的DC或者DC设置给子窗体,设置此风格会提高程序的表现。没有尝试过,可能是子窗体自绘吗?

CS_SAVEBITS:保存一个位图,有这个类型的窗口会掩盖屏幕的一个区域,当一个窗口移动的时候,系统会用保存的位图(这个位图是空的?)来存储屏幕图像或者其他被掩盖的窗体,因此,如果位图占用的内存没有释放,或者屏幕(被掩盖窗体)活动没有使这个位图失效的话,就不会向被掩盖的窗体或者屏幕发送WM_PAINT消息。这种风格适用于小窗体(菜单,对话框),这些窗体的特点是在其他窗口活动发生前就会被移动走,这个风格会增加显示窗体的次数,因为系统在内存中保存了一个位图 。又是和菜单有关的,可能是为 了增加右键菜单快速显示吗?有可能是想在右键菜单掩盖一个区域后,在消失后不会引起窗体重画,这样不会让下面的窗体闪烁。

下面是窗口风格:

WS_BORDER:有一个细小边框的窗体。(会呈现一个窗体,但在Win7下单独使用此风格和不使用没有区别)

WS_CAPTION:窗体有一个标题 栏。(Basic主题 下,有和没有此风格看不出效果)

WS_CHILD:此风格说明窗体是子窗体。不能和WS_POPUP风格同时使用。

WS_CHILDWINDOW:同WS_CHILD。

WS_CLIPCHILDREN:当绘画发生时,排除掉子窗体占据的区域,不再绘画,这发生在父窗体创建时。

WS_CLIPSIBLINGS:当一个子窗体发生绘画时接收到WM_PAINT消息,这个风格会从这个子窗体剪切掉其他子窗体的重叠区域。如果这个风格没有指定,刚在客户区绘制一个子窗体时,其他子窗体与这个子窗体的重叠区域也会被画。

WS_DISABLED:使窗体无效,当无效时不能接收用户的输入。可以用函数EnableWindow使窗体有效。(窗体显示出来,不会移动等效果)

WS_DLGFRAME:窗体有一个对话框的边框风格。有此风格时,不能有标题栏。(没看出效果)

WS_GROUP:有此风格的窗体是一组控件中的第一个窗体。包含第一个控件的这个组中的其他控件会在第一个控件创建后再依次创建。只到有一个控件定义了WS_GROUP风格才会结束,中间的控件不用此风格,都属于此组中。通常每个组的第一个控件有WS_TABSTOP风格,以使用户能从一个组移动到另一个组(这是用TAB键来实现的吧?)。在一个组中,用户能用方向键从第一个控件移动到下一个控件。为了改变这个风格,创建窗体后用SetWindowLong函数。

WS_HSCROLL:窗口有一个水平滚动条。

WS_ICONIC:此风格使窗体最小化。显示时是最小化的。和WS_MINIMIZE一样。(实际使用时不会出现时最小化,难道是ShowWindow时的结果吗)

WS_MAXIMIZE:窗口初始化最大。(测试时没有作用,和ShowWindow有关吗?)

WS_MAXIMIZEBOX:窗口有最大化按钮,不能和风格WS_EX_CONTEXTHELP同用,这时一定要有WS_SYSMENU风格。如果没有WS_SYSMENU风格时,就无效。

WS_MINIMIZE:和WS_ICONIC一样。

WS_MINIMIZEBOX:窗口有最小化按钮,也要指定WS_SYSMENU风格,如果没有WS_SYSMENU风格,此风格无效。

WS_OVERLAPPED:窗口有一个标题栏和边框风格。

WS_OVERLAPPEDWINDOW:集合各个风格,有(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)

WS_POPUP:弹出风格。不和WS_CHILD风格同用。(单独使用时不显示)。

WS_POPUPWINDOW:混合的风格。(WS_POPUP | WS_BORDER | WS_SYSMENU);有此风格的窗口是一个弹出窗口,和风格WS_CAPTION同时使用,才能让窗口菜单显示。(同时 使用也没有显示呀,只有在任务栏有窗体的最小化)

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_OVERLAPPEDWINDOW风格一样。集合风格,包括:(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)。

WS_VISIBLE:使窗口可见,可以通过函数ShowWindow和SetWindowPos来改变 。

WS_VSCROLL:窗口有一个竖直滚动条。

VC----Class Style类风格和窗口风格的更多相关文章

  1. WIN32窗口类风格和窗口风格(备查询)

    一.WNDCLASS typedef struct { UINT cbSize //这个结构体的长度,一般用sizeof(WNDCLASSEX)设置 UINT style //窗口式样 WNDPROC ...

  2. MFC窗口风格 WS_style/WS_EX_style(超详细)

    窗口风格(Window style) WS_BORDER   有边框窗口 WS_CAPTION   必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用.指示窗口包含标题要部分 ...

  3. MFC窗口风格 WS_style/WS_EX_style

    窗口风格(Window style) WS_BORDER   有边框窗口 WS_CAPTION   必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用.指示窗口包含标题要部分 ...

  4. WS_窗口风格常量

    WS_窗口风格常量 WS_BODER 窗口具有细线边框 WS_CAPTION 窗口具有标题栏(包含 WS_BODER) WS_CHILD 创建一个子窗口(此风格不能与 WS_POPUP 一起使用 ) ...

  5. vs调试看窗口风格

    vs调试看窗口风格 技巧:在数值上右键,以16进制显示.

  6. VC编程小技巧之框架窗口及其他

    1.修改主窗口风格 AppWizard生成的应用程序框架的主窗口具有缺省的窗口风格,比如在窗口标题条中自动添加文档名.窗口是叠加型的.可改变窗口大小等.要修改窗口的缺省风格,需要重载CWnd::Pre ...

  7. 精通 VC++ 实效编程280例 - 01 窗口

    窗口是屏幕上的一个矩形区域.窗口分为3种:重叠窗口.弹出窗口和子窗口.每个窗口都有由系统绘制的“非客户区”和应用程序绘制的“客户区”.在 MFC 中,CWnd 类为各种窗口提供了基类. 1 通过 HW ...

  8. 积累的VC编程小技巧之框架窗口及其他

    1.修改主窗口风格 AppWizard生成的应用程序框架的主窗口具有缺省的窗口风格,比如在窗口标题条中自动添加文档名.窗口是叠加型的.可改变窗口大小等.要修改窗口的缺省风格,需要重载CWnd::Pre ...

  9. vc如何让打开的子窗口默认是最大化的

    vc如何让打开的子窗口默认是最大化的 浏览: 3554 | 更新: 2011-04-09 17:04 1 0     加入杂志加入杂志 摘要:关于vc如何让打开的子窗口默认是最大化的深入研究.   步 ...

随机推荐

  1. inheritableStatics 与statics类

    /** * statics 可以包含类的静态和静态方法,但是不能被子类继承 * inheritableStatics 与statics类似但是可以被子类继承 */ Ext.onReady(functi ...

  2. mysql 存储过程和存储函数

    14.1.1 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristi ...

  3. Oauth2.0 用Spring-security-oauth2 来实现

    前言: 要准备再次研究下 统一认证的功能了,我还是觉得实现统一认证 用Oauth2 最好了,所以,现在再次收集资料和记笔记. 正文: 一.概念理解 OAuth2, 是个授权协议, RFC文档见:htt ...

  4. bzoj1066

    首先,我们可以想到从源点向每个有蜥蜴的地方连边,然后拆点,因为我们不能把一个点连向多条边,这样修改边的时候不可以,所以拆个点,就可以了 #include<iostream> #includ ...

  5. [分类算法] :SVM支持向量机

    Support vector machines 支持向量机,简称SVM 分类算法的目的是学会一个分类函数或者分类模型(分类器),能够把数据库中的数据项映射给定类别中的某一个,从而可以预测未知类别. S ...

  6. 【caffe】执行训练

    @tags caffe 训练 是在windows平台上. 主要是使用/caffe.exe,配合动作参数train,以及指定solver文件.e.g.: cd %caffe_root% %caffe_b ...

  7. Hadoop2.x Permission denied: user=dr.who, access=READ_EXECUTE inode="/tmp"

    在hadoop2中查看网页中的/tmp目录出现下面的错误: Permission denied: user=dr.who, access=READ_EXECUTE inode="/tmp&q ...

  8. 虚拟机克隆后找不到eth0

    使用 VMware 虚拟机的克隆功能,快速复制已安装好的 Linux 系统. 克隆完成之后,发现没有 eth0 网卡. [解决方法] 1. 编辑 /etc/udev/rules.d/70-persis ...

  9. IRC(Internet Relay Chat Protocol) Protocal Learning && IRC Bot

    catalogue . Abstract . INTRODUCTION . 通信协议Connection Registration Action . 通信协议Channel operations Ac ...

  10. bash 操作 sqlite3

    首先,这是个奇怪的需求...但是遇到了.我参考后文链接里的方法,做了自己的. 表是自己手动建的,数据库名字叫 new.db: create table test (sn varchar(), name ...