精华内容
下载资源
问答
  • windows窗口组成

    千次阅读 2013-09-26 09:18:11
    对于刚刚学习MFC的同学,随着学习的进行,肯定会碰到这样的问题:windows窗口到底是哪些部分组成的呢?请看下面: (1)标题栏title bar。窗口上方的蓝条区域,标题栏左边有控制菜单图表和窗口中程序的名称。 (2...

     windows窗口的组成

    .

    .

             对于刚刚学习MFC的同学,随着学习的进行,肯定会碰到这样的问题:windows窗口到底是由哪些部分组成的呢?请看下面:

    1)标题栏title bar。窗口上方的蓝条区域,标题栏左边有控制菜单图表和窗口中程序的名称。
    2)菜单栏Menu。位于标题栏的下边,包含很多菜单。
    3)工具栏toolbar。位于菜单栏下方,它以按扭的形式给出了用户最经常使用的一些命令,比如,复制,粘贴等。
    4)工作区域clientarea。窗口中间的区域,窗口的输入输出都在它里面进行。
    5)状态栏status bar。位于窗口底部,显示运行程序的当前状态,通过它用户可以了解到程序运行的情况。
    6)滚动条 scroll bar。如果窗口中显示的内容过多,当前可见的部分不够显示时,窗口就会出现滚动条,分为水平与垂直两种。
    7)窗口缩放按纽。即最大化maximize、最小化minimize、关闭按纽close

     

             分块的认识各个窗口部分是很重要的,但是并不困难。

     

     

    展开全文
  • Windows窗口

    千次阅读 2013-10-31 22:28:59
    Windows窗口       1. 窗口种类   重叠(Overlapped)窗口: 通常用于建立应用程序主窗口。事实上,有时也叫做“主”窗口或者“框架” 窗口。 WS_OVERLAPPED = WS_TILED 包含标题栏,无系统菜单(最小、大化,关闭,...

     

     

     

    Windows窗口

     

     

     

    1. 窗口种类

     

    重叠(Overlapped)窗口:通常用于建立应用程序主窗口。事实上,有时也叫做“主”窗口或者“框架”

    窗口。

    WS_OVERLAPPED            = WS_TILED包含标题栏,无系统菜单(最小、大化,关闭,或者是对开始菜单栏的该程序右键弹出菜单)

    WS_OVERLAPPEDWINDOW    = WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX

                         = WS_TILEDWINDOW

     

    弹出(Popup)窗口:通常以对话框和消息框的形式与用户对话。可以没有标题栏。

    WS_POPUP         如果单独创建,是不能显示的,只是在开始菜单栏有个图标

    WS_POPUPWINDOW         = WS_POPUP|WS_BORDER|WS_POPUP|WS_SYSMENU

     

    (Child)窗口:通常用在视图(View)中,如在文本编辑器中的文本显示,也用在控件中,如在对

    话框中的OK按钮。而对那些看起来像按钮或控件的子窗口,也称为“控件”窗口。不能有菜单栏,不能做弹出窗口。只能出现在另一个窗口中。另外,子窗口是唯一不能有菜单条的窗口。

    WS_CHILD          如果单独创建,是不能运行的

    WS_CHILDWINDOW         = WS_CHILD

     

    由重叠窗口、弹出窗口和子窗口组成的窗口应用程序

     

     

     

    2. 窗口风格

     

    WS_BORDER             窗口有一个细线框架

    WS_CAPTION            窗口有标题栏

    WS_SYSMENU          窗口有系统菜单,在标题栏上的最小、大化,关闭等选项

    WS_MAXIMIZEBOX  窗口系统菜单最大化按键能用

    WS_MINIMIZEBOX   窗口系统菜单最小化按键能用

    WS_HSCROLL            窗口有水平滚动条

    WS_VSCROLL            窗口有垂直滚动条

    WS_MAXIMIZE         窗口初始为最大化

    WS_MINIMIZE            = WS_ICONIC窗口初始为最小化

    WS_SIZEBOX             = WS_THICKFRAME  窗口可以被改变大小

    WS_TABSTOP            窗口能响应TAB按键

    WS_DISABLED          窗口是不可用的,即不能接收用户消息

    WS_VISIBLE              窗口初始为可见

    WS_CLIPCHILDREN  当绘制窗口时,不绘制子窗口所在区域,用于父窗口

    WS_CLIPSIBLINGS

    WS_DLGFRAME

    WS_GROUP

     

    组合实例:

    WS_POPUP | WS_BORDER启动图片

     

     

     

    3. 系统自定义的窗口类

     

    一些重要的窗口类

    (Windows 3.1及以上版本)

    #32768                        弹出式菜单窗口(弹出式菜单是位于弹出窗口中,并完全填充弹出窗口的菜单)

    #32769                        桌面窗口

    #32770                        对话框

    MDIClient                    MDI子窗口区域

     

    一些重要的通用控件窗口类

    (Windows 3.1及以上版本)

    BUTTON                    按钮控件窗口

    STATIC                       静态控件窗口

    EDIT                          编辑控件窗口

    LISTBOX                    列表框控件窗口

    SCROLLBAR              滚滚动条控件窗口

    COMBOBOX              滚组合框控件窗口

    ComboLBox                滚列表框控件窗口(显示在组合框控件窗口之下的列表框)

    (Windows 95/NT及以上版本)

    RICHEDIT                  滚多信息编辑控件窗口

    SysListView32             滚列表视图控件窗口

    ComboBoxEx32           滚扩展组合框控件窗口

    SysAnimate32              滚动画控件窗口

    msctls_trackbar32         滚幻灯片控件窗口

    SysTreeView32            滚树型视图控件窗口

    msctls_updown32       滚微调按钮控件窗口

    msctls_progress32        滚进度指示控件窗口

    SysHeader32                滚标题控件窗口(标题控件通常驻留在列表视图控件的顶部)

    SysTabControl32          选项卡控件窗口

    SysMonthCal32            月历控件窗口

    SysDateTimePick32      日期/时间选项控件窗口

    msctls_hotkey32           热键控件窗口

    tooltips_class32            工具提示控件窗口

    msctls_statusbar32        状态栏窗口

    toolbarWindow32         工具栏窗口

    ReBarWindow32           Rebar窗口

     

    一些重要MFC窗口类

    AfxWnd                       CWnd窗口

    AfxFrameOrView          MFC框架和视窗

    AfxMDIFrame              MDI框架窗口

    AfxControlBar              MFC控制条窗口

     

     

     

    4. 与窗口相关的API函数

     

    桌面窗口(窗口类#32769)

    GetDesktopWindow()

    SystemParametersInfo()

    Shell_NotifyIcon()

     

    SetWindowLong()        修改窗口风格

    FindWindow()                    搜索桌面上的窗口

    WindowFromPoint()     找到当前窗口在桌面上的点坐标

    GetSystemMetrics(SM_CXSCREEN)  获得屏幕尺寸

    GetSystemMetrics(SM_CYSCREEN)

     

     

    展开全文
  • Windows 窗口层次关系

    千次阅读 2014-05-14 11:08:32
    相信在Windows 下面编程的很多兄弟们都不是很清楚Windows窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。下面就说说Windows 中桌面(Desktop...
    相信在Windows 下面编程的很多兄弟们都不是很清楚Windows 中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。下面就说说Windows 中桌面(Desktop)以及顶层窗口,以及子窗口之间的关系。
    

        在Windows 的图形界面下,最基本显示信息的元素就是窗口,每一个Windows 窗口都管理着自己与其他窗口之间的关系和自身的一些信息,如:是否可见,窗口的所有者,窗口的父/子关系等等信息,当窗口创建、销毁、显示的时候,就会用到这些信息。

           在每一个窗口实例中,有四个元素被窗口管理器用来建立窗口管理链表。

          

    • Child  指向窗口子窗口的句柄
    • Parent:指向窗口父窗口的句柄
    • Owner:指向窗口所有者的句柄
    • Next   指向下一个同属窗口的句柄

        众所周知当Windows初始化的时候,它创建桌面这个窗口,桌面覆盖着整个窗口,窗口管理器用这个窗口作为窗口链表中第一个元素。因此桌面在窗口的层次关系中在最上层。

       在窗口层次关系中,桌面窗口下一层窗口叫做顶层窗口,顶层窗口就是那些不是子窗口的窗口,顶层窗口不能够有WS_CHILD属性。窗口管理器是如何把桌面窗口和顶层窗口联系起来的呢?窗口管理器把顶层窗口都组织到一个链表中,而这个链表的头存储的就是桌面窗口的子窗口句柄,每一个子窗口通过Next就可以找到链表中下一个窗口了。这个链表被称为子窗口链表,在同一个子窗口链表中的窗口是互为同属窗口,所有顶层窗口都是同属窗口窗口在子窗口链表中的次序也表明了窗口距离距离桌面窗口的距离[依次减小,第一个最上面,第二个在第一个下面,最后一个离桌面最近,也就是Z次序依次减小,第一个Z次序最大最能被看见]。顶层窗口所形成的子窗口链表构成了一个轴,窗口管理器就是根据Z序列来觉得窗口的哪一部分是显示的,哪一部分是被遮盖的。

       所有顶层窗口的父窗口都是指向桌面窗口的这样一来顶层窗口是桌面窗口的子窗口,所有顶层窗口构成的链表是桌面窗口的子窗口链表。当顶层窗口创建的时候,窗口管理器顶层窗口放在Z轴的顶上,这样使得整个窗口可见,窗口管理器把窗口插入到桌面窗口子窗口链表的前面。WS_EX_TOPMOST这个属性控制着窗口管理器创建顶层窗口,窗口管理器把没有WS_EX_TOPMOST属性的窗口放在具有WS_EX_TOPMOST属性的窗口的后面,这样就使得具有WS_EX_TOPMOST属性的窗口一直显示在前面

       

       在顶层窗口之间还有另外一直关系,拥有或者属于其他的顶层窗口,属于其他窗口的窗口叫做归属窗口,拥有其他窗口叫做宿主窗口,在Z轴中,归属窗口一定在他的宿主窗口的前面,如果一个宿主窗口最小化,那么归属他的窗口会隐藏掉,如果宿主窗口隐藏起来,归属他的窗口不会被隐藏掉。如果有三个窗口ABCA拥有 BB拥有 C,如果A最小化,那么B会隐藏,但是 C还是可见的。怎么才能够在窗口之间建立所有关系呢?方法是在调用CreateWindow或者CreateWindowEx创建窗口的时候,指定hwndParent 参数。

       

       桌面窗口是在窗口层次中的第一层顶层窗口在窗口层次中的第二层子窗口也就是那些创建的时候指定了WS_CHILD 属性的窗口占据了窗口层次的其他层。窗口和子窗口之间的联系,就像桌面窗口和顶层窗口之间的关系一样。

       

       子窗口显示在其父窗口的客户区域,所有同一个窗口子窗口同样建立一个Z轴【次序越大在越最上方】,这个和顶层窗口是类似的,顶层窗口也是显示在其父窗口――桌面窗口的客户区域。

       

    16 位和32 位窗口系统的区别

        窗口之间的父子关系、归属所有关系、以及根据 Z轴来显示的这些规则在16位和32位窗口系统中都是相同的。这样可以是在两种窗口系统中高度的兼容。两种窗口系统的区别在于安全和多线程。

       Windows NT 在原有的窗口层次关系中多增加了一层,每一个运行着Windows NT的系统中都有一个Windows 工作站对象,这个对象是安全对象的第一层,是所有用户安全对象的继承之源,每一个Windows工作站对象可以拥有一些桌面对象,每一个桌面都拥有上面描述的那样的窗口关系。Windows Nt用了两个桌面窗口对象,一个是用来处理登陆界面、屏蔽、锁住工作站等,一个是我们登陆之后进来操作的窗口了。J通常用户是不能够创建和删除桌面的,不过那是通常,实际上在Windows下面也可以实现类似 Linux 中的多个桌面的效果,每一个桌面都是一个独立的世界。

       两种窗口系统还有两位一个区别,在16 位窗口系统中不支持多线程,所以应用程序开发者在创建窗口的时候不必考虑线程的问题了。而在32位窗口系统中由于又支持了窗口的父子关系,归属与拥有关系,同一个窗口下面的所有线程都拥有相同的一个输入队列,应用程序开发者应该明白输入队列是共享的,在同一个时刻只能有一个线程处理消息,其他的线程都在等待输入队列一直到GetMessage或者PeekMessage返回,而且必须注意的是父窗口和子窗口或者是归属与拥有窗口共用同一个线程。

       在32 窗口系统中定义两种新的窗口类型,前台窗口和背景窗口,这两种窗口没有列到窗口的层次关系中,前台窗口就是用户当前操作的窗口,其他的所有窗口都是背景窗口。 32位窗口系统中支持两个函数来处理前台窗口SetForegroundWindowGetForegroundWindow

     

    操作窗口列表

       下面是窗口列表操作的一些函数:

    Ø      EnumChildWindows

    使用这个函数得到一个窗口的所有子窗口,包括子窗口的子窗口。不过在列举的过程中这个函数不能够列出正在创建的或者销毁的窗口。

    Ø      EnumThreadWindows

    使用这个函数可以列出所有属于这个线程的窗口。在这个函数调用之后创建的窗口是不能够被列举出来的。

    Ø      EnumWindows

    使用这个函数列举出所有顶层窗口,不能够列举出子窗口,要列出所有的顶层窗口,使用这个函数比GetWindow安全。使用GetWindow来列出所有的窗口,可能会导致程序无限循环,因为在调用GetWindow的过程中,可能一些窗口已经销毁了。EnumWindows不能够列举出调用这个函数之后创建的顶层窗口。

    Ø      FindWindow

    可以使用这个函数通过类名或者使用窗口的标题来找到顶层窗口,这个函数不能够用来找子窗口,这个函数不区分参数的大小写。这个函数在Z轴中寻找窗口,找到了之后,就会返回。

    Ø      GetDesktopWindow

    得到桌面窗口句柄

    Ø      GetNextWindow

    使用这个函数得到这个窗口的同属窗口,在16 位窗口系统中GetNextWindow GetWindow是两个不同的函数,在32位系统中这个函数是通过GetWindow来实现的。

    Ø      GetParent

    如果一个窗口存在父窗口,那么可以通过这个函数得到窗口的父窗口,如果窗口是顶层窗口,则返回其所有者窗口句柄。

    Ø      GetThreadDesktop

    这个函数用来得到指定线程的所属的桌面窗口句柄,在win95 win98下面由于不支持多桌面,每次调用该函数都返回同一个值。

    Ø      GetTopWindow

    可以用这个函数来得到给定窗口的第一个子窗口的句柄,如果传递给函数的参数是NULL的话,那么这个函数将会返回最上面的顶层窗口。

    Ø      GetWindow

    应用程序可以调用这个函数来在窗口列表中导航,这个函数有两个参数,一个是窗口的句柄,另外是要得到的窗口句柄和这个窗口之间的关系。

    ·        GW_HWNDNEXT:这个函数返回给定窗口的下一个同属窗口

    ·        GW_HWNDPREV:返回给定窗口的前一个同属窗口  

    ·        GW_HWNDFIRST:返回给定窗口的第一个同属窗口

    ·        GW_HWNDLAST:返回给定窗口的最后一个同属窗口

    ·        GW_OWNER:返回给定窗口的所有者窗口句柄

    ·        GW_CHILD:返回给定窗口的第一个子窗口句柄  

    Ø     IsChild

    这个函数有两个参数,两个窗口句柄,判断两个窗口是否存在父子关系  

    窗口的属性

        当应用程序调用CreateWindow创建窗口的时候,我们必须为窗口指定属性,下面简要的介绍一下窗口的属性。

    WS_OVERLAPPED

       交迭属性是顶层窗口的一种属性,使用这种属性创建的窗口,会被链接到桌面窗口的子窗口链表中,应用程序通常使用这种属性的窗口作为应用程序的主窗口,具有交迭属性的窗口通常具有有标题栏,即使是WS_CAPTION 这个属性没有指定。具有交迭属性的窗口通常都是有边框的,具有交迭属性的窗口可以拥有自己的顶层窗口,也可以所属其他的顶层窗口,所有的这类窗口都具有WS_CLIPSIBLINGS 属性,即使是没有给窗口指定这个属性。

    WS_POPUP

       弹出属性也是应用到顶层窗口的一种属性,使用这种属性创建的窗口会被链接到桌面窗口的子窗口链表中,应用程序通常为对话框窗口设置这个属性,弹出属性和交迭属性的主要区别在于具有弹出属性的窗口不是一定要有标题栏的,而具有交迭属性的窗口则是一定要具有标题栏,具有弹出属性的窗口可以没有边框。和具有交迭属性的窗口一样,具有弹出属性的窗口可以有自己的顶层所属窗口,也可以所属其他的顶层窗口。所有具有弹出属性的窗口必须具有WS_CLIPSIBINGS 属性,即使是用户没有指定这个属性。具有弹出属性的窗口在创建的时候,它的大小和位置不能够使用CW_USEDEFAULT 值。

    WS_CHILD

       子窗口必须具有这个属性,子窗口只能够出现在父窗口的客户区域,这是子窗口和具有交迭属性的窗口以及弹出属性的窗口的主要区别,创建子窗口的时候,位置和大小不能够使用CW_USEDEFAULT 这个值,否则是不能够创建窗口的。

    WS_CAPTION

        当窗口被设置这个属性的时候,窗口的最上头会有标题栏,应用程序可以通过SetWindowText 这个函数来改变标题栏的标题,通常具有标题栏的窗口还具有最大、最小、关闭按钮,和系统菜单。如果一个窗口没有标题栏,那么Windows 是不会创建这些东西的,即使是用户指定了这些属性,系统菜单是依赖标题栏窗口的存在而存在的,如果没有标题栏那么是一定不会有系统菜单的存在的。具有标题栏的窗口通常具有单线的边界具有可以改变窗口大小的属性,通常具有标题栏的窗口是不能具有对话框的边界属性的,除非为窗口设置WS_EX_DLGMODALFRAME 属性。 

    WS_MINIMIZEBOX

       当为窗口设置这个属性的时候,窗口的标题栏上会有一个最小化的按钮,其实对于Windows 来实现这个属性的时候,只是在标题栏上面放置了一个最小化的位图,当用户点击这个最小化位图的时候,窗口最小化,如果最大化位图最在,那么最小化位图被放置在最大化位图的左边。没有这个属性的窗口是不能够最小化的。

    WS_MAXIMIZEBOX

       当为窗口设置这个属性的时候,窗口的标题栏的右上会被放置一个最大化的位图,如果窗口设置了这个属性,用户可以点击最大化的位图或者是通过系统菜单来实现窗口的最大化,没有这个属性的窗口是不能够被最大化的。

    WS_SYSMENU

       如果为窗口指定这个属性,那么就会在窗口的左上角上放置系统菜单位图,系统菜单为用户提供了操作窗口的接口,通常系统菜单会有下面这些系统命令:

    • 恢复最小化的窗口
    • 使用键盘移动窗口
    • 使用键盘改变窗口的大小
    • 最小化窗口
    • 最大化窗口
    • 关闭窗口
    • 切换到其他的任务

    如果一个窗口有系统菜单,用户可以通过点击系统菜单图标来调用系统菜单,或者通过Alt+ 空格的快捷键调出系统菜单,或者通过点击任务栏上窗口的图标来调出系统菜单,如果一个窗口没有系统菜单,那么用户不能够通过键盘来实现系统命令,除非应用程序自身提供了这样的接口。系统菜单对于最大化的窗口也是很有用处的,最大化的窗口覆盖了整个屏幕,这样的窗口不能够被移动,除非恢复到不是最大化的状态,如果这个最大化的窗口有了系统菜单,则就不必一定恢复到非最大化的状态才能够移动。

    WS_HSCROLL

    如果窗口被指定了这个属性,那么窗口会有一个水平的滚动条,窗口是不会自动的滚动滚动条的,如果应用程序要支持滚动条,那么必须自己处理WM_HSCROLL 消息,这个属性通常是在窗口创建的时候,被指定的。 

    WS_VSCROLL

    如果窗口被指定了这个属性,那么窗口会有一个竖直的滚动条,窗口不会自动的滚动滚动条,应用程序必须自己处理WM_VSCROOL 消息来处理滚动条滚动的消息,这个属性通常是在窗口被创建的时候指定的。

    WS_BORDER

    如果窗口被指定了这个属性,那么窗口会有一个单线的边在窗口的周围,如果没有指定这个属性,但是窗口具有标题栏,那么窗口会自动的拥有这个属性,如果窗口没有这个属性,拥有这个属性的窗口不能够通过键盘或者是鼠标改变窗口的大小。

    WS_DLGFRAME

    如果窗口被指定了这个属性,那么窗口具有对话框的边框,这个属性通常是用在对话框窗口的,只能够用在窗口没有标题栏的情况下,如果一个不是对话框的窗口使用了这个窗口,那么窗口必须被指定WS_EX_DLGMODALFRAME 属性。使用这个属性创建的窗口,不能够通过键盘和鼠标改变窗口的大小。

    WS_THICKFRAME

    当窗口被指定了这个属性,那么窗口会有一个可以改变大小的边框,这种属性通常用在程序的主窗口,具有这种属性的窗口的大小可以通过键盘或者鼠标来改变。

    WS_CLIPCHILDREN

    这个属性用在具有子窗口的窗口,使用这个属性,可以使Windows 把子窗口所占的区域拷贝到父窗口,而不是甴父窗口直接的画子窗口所属的区域,如果窗口没有指定这个属性,那么那么父窗口会覆盖子窗口的区域。在一些图片显示或者OpenGL 显示的窗口中,指定这个属性是很重要的。

    WS_CLIPSIBLINGS

    当窗口赋予这个属性,窗口在自绘的时候,不会绘制到同属的子窗口,所有具有交迭属性和弹出属性的窗口都具有这个属性,所有的顶层窗口都具有这个属性,这样一来顶层窗口在自绘的时候,不会绘制在到其他的顶层窗口。 

    WS_VISIBLE

    当窗口被设置这个属性的时候,窗口是可见的,默认的情况下,应用程序必须自己调用ShowWindow 来显示窗口。

    WS_DISABLED

    当窗口被设置这个属性的时候,创建的窗口不能够接受用户的输入,除非应用程序自身提供方法来输入。这个属性通常用在Windows 控件上面。

    WS_CHILDWINDOWS

    这个属性同WS_CHILD。

    WS_OVERLAPPEDWINDOWS

    这个属性同WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,这个属性通常用在应用程序的主窗口。

    WS_POPUPWINDOWS

    这个属性同WS_POPUP | WS_BORDER | WS_SYSMENU,尽管这个属性中包含了WS_SYSMENU 属性,如果窗口没有 WS_CAPTION 属性,那么窗口也不会有系统菜单。

    WS_EX_DLGMODALFRAME

    当窗口设置了这个属性的时候,窗口具有对话框的边框,这个属性通常用在对话框窗口,不过任何窗口都可以使用这个属性来获得对话框的边框。

    WS_EX_NOPARENTNOTIFY

    这个属性是用在子窗口上的,当子窗口设置了这个属性,Windows 不发送WM_NOTIFY 消息给子窗口的父窗口,默认情况下,Windows 会在子窗口创建或者销毁的时候发送WM_NOTIFY 消息给子窗口的父窗口。

    WS_EX_TOPMOST

    这个属性仅用在顶层窗口,对于子窗口设置这个属性是被忽略的,如果窗口设置了这个属性,那么窗口会一直在其他窗口的上面。

    WS_EX_ACCEPTFILES

    窗口设置了这个属性,那么窗口可以接受拖放的对象。

    WS_EX_TRANSPARENT

    这个属性能够使窗口透明,设置了这个属性的窗口的背景使可以被看到的,透明窗口对于鼠标和键盘的消息事件并不是透明的

    展开全文
  • windows 窗口样式

    千次阅读 2017-12-15 16:54:16
    1 窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW 子窗口(不能与WS_POPUP合用) WS_MINIMIZE 创建窗口拥有最小化按钮 ...

    1 窗口样式

    WS_POPUP

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

    WS_CHILDWINDOW

    子窗口(不能与WS_POPUP合用)

    WS_MINIMIZE

    创建窗口拥有最小化按钮

    WS_MINIMIZEBOX

    创建窗口拥有最小化按钮,须同时指定WS_SYSTEM样式

    WS_VISIBLE

    可见状态

    WS_DISABLED

    不可用状态

    WS_CLIPSIBLINGS

    使窗口排除子窗口之间的相对区域

    WS_CLIPCHILDREN

    当在父窗口内绘图时,排除子窗口区域

    WS_MAXIMIZE

    具有最大化按钮

    WS_MAXIMIZEBOX

    创建窗口拥有最大化按钮,须同时指定WS_SYSTEM样式

    WS_CAPTION

    有标题框和边框(和WS_TILED样式相同)

    WS_BORDER

    有单边框

    WS_DLGFRAME

    带对话框边框样式,不带标题框

    WS_VSCROLL

    有垂直滚动条

    WS_HSCROLL

    有水平滚动条

    WS_SYSMENU

    标题框上带有窗口菜单(须指定WS_CAPTION样式)

    WS_THICKFRAME

    有可调边框(与WS_SIZEBOX样式相同)

    WS_TILED

    与WS_OVERLAPPED风格相同

    WS_TILEDWINDOW

    与WWS_OVERLAPPEDWINDOW风格相同

    WS_GROUP

    组样式,每个组的第一个控件具有WS_TABSTOP样式

    WS_TABSTOP

    可接受TAB键

    WS_OVERLAPPED

    创建一个重叠式窗口,拥有标题栏和边框

    WS_OVERLAPPEDWINDOW

    WS_OVERLAPPED风格

    WS_CAPTION风格

    WS_SYSMENU风格

    WS_THICKFRAME风格

    WS_MINIMIZEBOX风格

    WS_MAXIMIZEBOX风格

    2 窗口扩展样式参考列表

    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 = &H80000

    分层或透明窗口,该样式可使用混合特效

    WS_EX_NOINHERITLAYOUT

    子控件不继承窗体或控件的布局

    WS_EX_LAYOUTRTL

    窗体或控件将具有从右向左的布局(因而会被镜像)

    WS_EX_COMPOSITED

    用双缓冲从下到上绘制窗口的所有子孙(WinXP以上)

    WS_EX_NOACTIVATE

    处于顶层但不激活

    3 按钮风格

    BS_AUTOCHECKBOX

    同复选按钮类似,点击一下选中,再次点击取消。

    BS_AUTORADIOBUTTON

    同单选按钮类似,点击后选中标志将从同组的其他单选按钮处移到当前选项。

    BS_CHECKBOX

    复选按钮

    BS_DEFPUSHBUTTON

    默认普通按钮,具有较黑的边框。

    BS_GROUPBOX

    分组框

    BS_LEFTTEXT

    同单选按钮或复选按钮配合使用,标题将显示在左侧。

    BS_OWNERDRAW

    可创建一个拥有者自绘按钮。

    BS_PUSHBUTTON

    普通下压按钮

    BS_RADIOBUTTON

    圆形单选按钮

    BS_3STATE

    三态复选按钮,三种状态即:选中,未选中,未定

    BS_AUTOCHECKBOX

    检查框,按钮的状态会自动改变

    BS_AUTORADIOBUTTON

    圆形选择按钮,按钮的状态会自动改变

    BS_AUTO3STATE

    允许按钮有三种状态即:选中,未选中,未定

    BS_CHECKBOX

    检查框

    BS_LEFTTEXT

    左对齐文字

       
       
       
       
       

    4 旋转按钮控件

    UDS_HORZ

    指定一个水平旋转按钮.若不指定该风格则创建一个垂直的旋转按钮

    UDS_WRAP

    当旋转按钮增大到超过最大值时,自动重置为最小值,当减小至低于最小值时,自动重置为最大值

    UDS_ARROWKEYS

    当用户按下向下或向上箭头键时,旋转按钮值递增或递减

    UDS_SETBUDDYINT

    旋转按钮将自动更新伙伴控件中显示的数值,如果伙伴控件能接受输入,则可在伙伴控件中输入新的旋转按钮值

    UDS_NOTHOUSANDS

    伙伴控件中显示的数值每隔三位没有千位分隔符

    UDS_AUTOBUDDY

    自动使旋转按钮拥有一个伙伴控件

    UDS_ALIGNRIGHT

    旋转按钮在伙伴控件的右侧

    UDS_ALIGNLEFT

    旋转按钮在伙伴控件的左侧

    5 轨道条控件

    TBS_HORZ

    指定一个水平轨道条.该风格是默认的

    TBS_VERT

    指定一个垂直轨道条

    TBS_AUTOTICKS

    在范围设定后,自动为轨道条加上刻度

    TBS_NOTICKS

    轨道条无刻度

    TBS_BOTTOM

    在水平轨道条的底部显示刻度,可与TBS_TOP一起使用

    TBS_TOP

    在水平轨道条的顶部显示刻度,可与TBS_BOTTOM一起使用

    TBS_RIGHT

    在垂直轨道条的右侧显示刻度,可与TBS_LEFT一起使用

    TBS_LEFT

    在垂直轨道条的左侧显示刻度,可与TBS_RIGHT一起使用

    TBS_BOTH

    在轨道条的上下部或左右两侧都显示刻度

    TBS_ENABLESELRANGE

    在轨道条中显示一个选择范围

    6 文本编辑框风格

    ES_AUTOHSCROLL

    当在行尾添加一个字符后自动向右滚动10个字符

    ES_AUTOVSCROLL

    当输入回车后自动上滚一行

    ES_CENTER

    字符居中显示

    ES_LEFT

    字符左对齐

    ES_LOWERCASE

    统一转化为小写字母

    ES_MULTILINE

    允许多行显示

    ES_NOHIDESEL

    当编辑失去焦点时隐藏对字符的选定,重新获得焦点后以反色显示选中内容

    ES_OEMCONVERT

    将ANSI字符转化为OEM字符

    ES_PASSWORD

    以星号显示字符,多用于回显密码

    ES_RIGHT

    字符右对齐

    ES_UPPERCASE

    统一转化为大写字母

    ES_READONLY

    设置字符为只读

    ES_WANTRETURN

    接受回车键输入

    7 列表框风格

    LBS_STANDARD

    创建一个具有边界和垂直滚动条、当选择发生变化或条目被双击时能够通知父窗口的标准列表框。所有条目按字母排序

    LBS_SORT

    按字母排序

    LBS_NOSEL

    条目可视但不可选

    LBS_NOTIFY

    当用户选择或双击一个串时,发出消息通知父窗口

    LBS_DISABLENOSCROLL

    在条目不多时依然显示并不起作用的滚动条

    LBS_MULTIPLESEL

    允许条目多选

    LBS_EXTENDEDSEL

    可用SHIFT和鼠标或指定键组合来选择多个条目

    LBS_MULTICOLUMN

    允许多列显示

    LBS_OWNERDRAWVARIABLE

    创建一个拥有者画列表框,条目高度可以不同

    LBS_OWNERDRAWFIXED

    创建一个具有相同条目高度的拥有者画列表框

    LBS_USETABSTOPS

    允许使用TAB制表符

    LBS_NOREDRAW

    当条目被增删后不自动更新列表显示

    LBS_HASSTRINGS

    记忆了添加到列表中的字串

    LBS_WANTKEYBOARDINPUT

    当有键按下时向父窗口发送WM_VKEYTOITEM或WM_CHARTOITEM消息

    LBS_NOINTEGRALHEIGHT

    按程序设定尺寸创建列表框

    8 组合框风格

    CBS_AUTOHSCROLL

    当在行尾输入字符时自动将编辑框中的文字向右滚动

    CBS_DROPDOWN

    同CBS_SIMPLE风格类似,只是只有在用户点击下拉图标时才会显示出下拉列表

    CBS_DROPDOWNLIST

    同CBS_DROPDOWN类似,只是显示当前选项的编辑框为一静态框所代替

    CBS_HASSTRINGS

    创建一个包含了由字串组成的项目的拥有者画组合框

    CBS_OEMCONVERT

    将组合框中的ANSI字串转化为OEM字符

    CBS_OWNERDRAWFIXED

    由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度相同

    CBS_OWNERDRAWVARIABLE

    由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度可以不同

    CBS_SIMPLE

    下拉列表始终显示

    CBS_SORT

    自动对下拉列表中的项目进行排序

    CBS_DISABLENOSCROLL

    当下拉列表显示内容过少时显示垂直滚动条

    CBS_NOINTEGRALHEIGHT

    在创建控件时以指定的大小来精确设定组合框尺寸

    9 树形视图控件

    TVS_HASLINES

    在父项与子项间连线以清楚地显示结构

    TVS_LINESATROOT

    只在根部画线

    TVS_HASBUTTONS

    显示带有"+"或"-"的小方框来表示某项能否被展开或已展开

    TVS_EDITLABELS

    用户可以编辑表项的标题

    TVS_SHOWSELALWAYS

    即使控件失去输入焦点,仍显示出项的选择状态

    TVS_DISABLEDRAGDROP

    不支持拖动操作

    10 列表视图控件

    LVS_ALIGNLEFT

    当显示格式是大图标或小图标时,标题放在图标的左边.缺省情况下标题放在图标的下面

    LVS_ALIGNTOP

    当显示格式是大图标或小图标时,标题放在图标的上边

    LVS_AUTOARRANGE

    当显示格式是大图标或小图标时,自动排列控件中的表项

    LVS_EDITLABELS

    用户可以修改标题

    LVS_ICON

    指定大图标显示格式

    LVS_LIST

    指定列表显示格式

    LVS_NOCOLUMNHEADER

    在报告格式中不显示列的表头

    LVS_NOLABELWRAP

    当显示格式是大图标时,使标题单行显示.缺省时是多行显示

    LVS_NOSCROLL

    列表视图无滚动条

    LVS_NOSORTHEADER

    报告列表视图的表头不能作为排序按钮使用

    LVS_OWNERDRAWFIXED

    由控件的拥有者负责绘制表项

    LVS_REPORT

    指定报告 显示格式

    LVS_SHAREIMAGELISTS

    使列表视图共享图像序列

    LVS_SHOWSELALWAYS

    即使控件失去输入焦点,仍显示出项的选择状态

    LVS_SINGLESEL

    指定一个单选择列表视图.缺省时可以多项选择

    LVS_SMALLICON

    指定小图标显示格式

    LVS_SORTASCENDING

    按升序排列表项

    LVS_SORTDESCENDING

    按降序排列表项

    11 静态文本框风格

    SS_CENTER

    字符居中显示

    SS_LEFT

    字符左对齐

    SS_LEFTNOWORADWRAP

    字符左对齐,可处理TAB制表符,不支持自动换行,超过末尾字符被裁剪

    SS_BLACKRECT

    用窗口边框色填充的矩形

    SS_BLSCKFRAME

    矩形边框,与窗口边框同色

    SS_GRAYRECT

    用屏幕背景色填充的矩行

    SS_GRAYFRAME

    矩形边框,使用屏幕背景色

    SS_WHITERECT

    用窗口背景色填充的矩行

    SS_RIGHT

    字符右对齐

    SS_WHITEFRAME

    矩形边框,使用窗口背景色

    12 控件样式参考列表

    DS_ABSALIGN

    对话框的坐标为屏幕坐标(缺省为客户区坐标)

    DS_SYSMODAL

    系统模式(仅支持16位程序),不能与DS_CONTROL同用

    DS_LOCALEDIT

    在对话框内部为编辑框分配内存(仅支持16位程序)

    DS_SETFONT

    可定制对话框字体

    DS_MODALFRAME

    框架样式(不能与WS_CAPTION同用)

    DS_NOIDLEMSG

    无空闲消息

    DS_SETFOREGROUND

    使对话框在最前面显示

    DS_3DLOOK

    四周有3维边框

    DS_FIXEDSYS

    使用系统固定字体

    DS_NOFAILCREATE

    忽略创建过程中的错误

    DS_CONTROL

    控件模式,可作为其他对话框的子窗口

    DS_CENTER

    在屏幕居中

    DS_CENTERMOUSE

    在鼠标位置居中

    DS_CONTEXTHELP

    有上下文帮助按钮

    展开全文
  • Windows 窗口类型

    千次阅读 2016-06-07 11:32:41
    windows编程中,最基本的就是窗口了,调用函数CreateWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth,int nHeight,HWND hWndParent, HMENU hMenu,...
  • WINDOWS窗口坐标

    千次阅读 2017-02-27 10:56:00
    窗口组成】 外部边框。窗口Border属性为 Thin, Resizing时,有3个像素宽的边框。 系统区:窗口上部蓝色部分,有最大最小关闭按钮的那一个部分。 客户区:除去外部边框和系统区的部分。系统区有统一的...
  • Windows窗口样式

    千次阅读 2009-01-19 10:39:00
    Windows常见窗口样式和控件风格 王佰营 徐丽红一、窗口样式WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW 子窗口(不能与WS_POPUP合用)WS_MINIMIZE 创建窗口拥有最小化按钮WS_...
  • Windows 窗口层次关系及窗口层次说明

    千次阅读 2016-11-26 14:15:17
    Windows 窗口层次关系及窗口层次说明
  • 文章目录一、前言二、使用Spy++工具分析窗口三、C#通过Windows API捕获窗口,获取窗口文本四、附录:Windows窗口消息 一、前言 项目是Unity开发的,上架了QQ游戏大厅,需要兼容XP系统。 QQ游戏大厅启动游戏的流程是...
  • Windows 窗口发送消息参数详解

    万次阅读 2020-06-24 15:32:25
    窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg,wparam,iparam) 英文函数原型: sendmessage(hwnd,...
  • Windows窗口消息大全

    千次阅读 2012-10-22 11:06:46
     IDSTR(WM_GETMINMAXINFO),"当窗口将要改变大小或位置时,系统发送本消息给窗口,用户拖动一个可重置大小的窗口时便会发出本消息",  //IDSTR(0x0025),"",  IDSTR(WM_PAINTICON),"当一个最小化的窗口图标将...
  • Windows窗口属性和拓展属性

    千次阅读 2013-12-12 16:37:19
    最近在学Windows编程,自己整理了翻译了一下MSDN上的Window Style和Window Ex Style(Ps:英语水平有限,翻译可能有一些错误,欢迎勘正) Window Styles:   WS_BORDER 0X00800000L 创建一个有边框的窗口   WS_...
  • windows窗口中控件的样式

    千次阅读 2019-07-05 15:03:34
    指定所有者绘制的组合框包含字符串组成的项目。组合框维护字符串的内存和地址,以便应用程序可以使用 CB_GETLBTEXT消息来检索特定项目的文本。 有关辅助功能问题,请参阅 公开所有者绘制的组合框项目 CBS_...
  • Windows窗口的实现过程

    千次阅读 2006-01-03 20:33:00
    ////////////////////////////////////////////////////////////////////////////////////////////////////////// 一个典型的用C和Win32 API写的窗口程序// 该示例描述了一个Windows窗口的实现过程,是应用Windows...
  • Windows应用程序是基于消息驱动的,任何线程只要注册窗口类都会有一个消息队列用于接收用户输入的消息和系统消息。 一、 窗口的创建流程 创建一个完整的窗口需要经过下面四个操作步骤: 设计一个窗口类(填写...
  • windows窗口中非客户区消息总结

    千次阅读 2013-10-25 13:56:20
    非客户区域边框、菜单栏、标题栏、滚动条、系统菜单、最小化、最大化组成。  非客户区域消息主要是为了系统自身使用,比如,当热点移到窗口边框上时,系统用非客户区域消息把鼠标光标变为两个箭头的光标。窗体...
  • 调用Windows api 窗口截图

    千次阅读 2016-11-03 15:02:21
    分别调用windows api函数及CVI自带函数,完成对GRAPH界面的截图
  • 一个常规的windows窗口一般都是一些一样的构造,你如果想要更改一些... 首先看一下一般的windows窗口都包含什么框架(NO picture you say a J8.....上图上图)如下(罗云斌win32汇编书中92页的一张图): 该图简单的
  • 一、窗口结构体WNCLASS 这个结构体存储的是一些关于窗口类信息的结构, 成员如下: typedef struct tagWNDCLASSA { UINT style;//窗口类型 WNDPROC lpfnWndProc;//窗口处理函数(回调函数) int cbClsExtra;//...
  • windows窗口基础2—参数说明

    千次阅读 2009-04-05 23:09:00
    1.5、句柄 Windows应用程序中存在许多对象,例如选单、窗口、图标、内存对象、位图、刷子、设备对象和程序实例等,在Windows中,对象使用句柄进行标识,这样,通过使用一个句柄,应用程序可以访问一个对象。...
  • Windows中一个进程可以包含多个线程,多个线程组成。在Windows应用程序中,窗体是一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。一个UI线程包含一个消息循环对列。在窗口运行过程中,按...
  • windows的资源管理器窗口中,其左边窗口显示的内容是“系统的文件夹树”。在“资源管理器”窗口中,左边的文件夹窗口以树形目录的形式显示文件夹,右边的文件夹内容窗口是左边窗口中所打开的文件夹中的内容。 文件...
  • windows窗口基本代码详细解析

    千次阅读 2012-10-30 15:55:05
    /*下列注释函数均在平台SDK文档中说明,并在不同的头文件中声明,其中绝大多数在WINUSER.H中声明。*/ #include ... // 窗口过程; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstan
  • [MFC]_在vs2019中使用MFC快速构建简单windows窗口程序 转自:葛木小舍先生,一只默默奋斗的小菜鸟,为了庆祝展翅翱翔的那天博客 https://www.cnblogs.com/gemuxiaoshe/p/12054099.html 微软基础类库(英语: ...
  • Windows常见窗口样式和控件风格

    千次阅读 2017-05-22 21:18:02
    Windows常见窗口样式和控件风格 王佰营 徐丽红 一、窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW 子窗口(不能与WS_POPUP合用) WS_MINIMIZE 创建窗口拥有最小化按钮 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,113
精华内容 46,445
关键字:

windows窗口主要由什么组成