1、Windows窗口介绍
在Windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理窗口,这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。而窗口之间的关系有两种:owner-owned(拥有-被拥有关系)、
parent-child(父-子关系)。
如果单纯说明窗口的类型,那么Windows中定义了3种窗口类型:
CHILD           :子窗口
POPUP          :弹出窗口,适合作为主窗口。
OVERLAPPED:重叠式窗口,适合作为主窗口,默认具有标题栏等属性。
两种窗口风格:
WS_CLIPSIBLING    :适用于同一级子窗口之间,表示当某设置了该风格的子窗口需要重绘时,被遮挡区域不进行重绘;
WS_CLIPCHILDREN:适用于父窗口和子窗口之间,表示当某设置了该风格的父窗口需要重绘时,被遮挡区域不进行重绘;
在Windows窗口中,overlapped窗口和popup窗口肯定具有WS_CLIPSIBLING风格,即使在代码中人为去掉该风格,Windows还是会自动添加上。
2、作为子窗口的控件
控件属于子窗口,是系统已经定义好的窗口类,不需要进行注册,也不需要添加消息处理函数。只需在主窗口得到WM_CREATE消息时,建立子窗口即可。
控件的创建方式:
a.随对话框资源一同创建,属于可视化编程方式可以方便地设置各个控件的属性;
b.CreateWindow创建,代码控制,创建的位置更为精准;
所有控件都有且只有一个ID,通过查看资源的属性即可看到操作控件所使用的控件句柄可由GetDigItem函数得到。此时的父窗口更像一个消息中转站,子控件发生的任何行为都会给父窗口发送消息,父窗口得到消息之后将根据消息的内容,或是给其他子控件发送控制消息,亦或其他操作。
一般情况下,我们都是直接将控件拖拽到对话框中在属性栏中设置ID和标题即可,常用控件主要有Button/CheckBox/EditControl/ComboBox/StaticText/Picture Control/Process Control/List Control/Table Control等。
3、对话框
用途:
a.发送消息:应用程序向用户发送消息时使用,常见有警告消息框,提示消息框等;
b.接收消息:应用程序希望得到用户输入时使用;
c.提供消息:应用程序向用户提供信息时使用;
对话框与一般应用程序子窗口比较:
a.创建形式:在资源描述文件定义对话框模板完成创建;
b.独立的消息处理函数:应用程序在消息循环中判断消息队列中的消息,若为对话框消息,则将消息发往对话框处理函数进行处理;
c.包含多种控件:对话框中根据需要包含各式形状和功能的控件,应用程序通过控件完成与用户之间的对话框交互。
对话框分类:
a.模态对话框:要求用户必须结束该对话框之后才可切换到其他窗口,即该对话框与同一应用程序中的其他窗口互锁;
使用DialogBox函数创建,自带消息循环。
b.非模态对话框:允许在结束该对话框之前切换到其他窗口操作;使用CreateDialog函数创建,需编写消息循环。

Windows窗口及对话框相关推荐

  1. windows软件窗口或者对话框太大超出屏幕解决办法

    软件窗口太大显示不全 问题:软件窗口或对话框太大,最大化也无法显示全部,拖动标题栏移动到屏幕顶部,底部也显示不出来.具体见下面两张图片. 解决方法: 使用第三方工具: 窗口移动精灵 AltDrag 使 ...

  2. Windows窗口、控件和对话框

    from:http://www.zbitedu.com/?action-viewthread-tid-24616 Windows窗口.控件和对话框 windows应用程序是通过窗口(window).控 ...

  3. 【MFC】Windows窗口样式

    00. 目录 文章目录 00. 目录 01. 框架窗口样式 02. 静态样式 03. 窗口样式 04. 扩展的窗口样式 05. 附录 01. 框架窗口样式 框架窗口样式适用于 CFrameWnd 类 ...

  4. Windows窗口刷新机制详解

    1.Windows的窗口刷新管理 窗口句柄(HWND)都是由操作系统内核管理的,系统内部有一个z-order序列,记录着当前窗口从屏幕底部(假象的从屏幕到眼睛的方向),到屏幕最高层的一个窗口句柄的排序 ...

  5. Windows窗口消息大全,全不全自己看

    1 Windows窗口消息大全,全不全自己看 2 3 // 4 #include "AFXPRIV.H"//消息值的定义来源 5 #include "Dde.h" ...

  6. Windows窗口消息介绍

    Windows窗口消息介绍 // #include "AFXPRIV.H"//消息值的定义来源 #include "Dde.h"//DDE消息值的定义来源 #i ...

  7. 手把手教你写第一个Windows窗口

    第一个Windows窗口 效果展示 详细过程 设计窗口类 注册窗口类 创建窗口 显示窗口 更新窗口 消息循环 源代码 实用工具 图标制作软件 图标库 效果展示 第一个Windows窗口 详细过程 设计 ...

  8. C#通过Windows API捕获窗,获取窗口文本(FindWindow、GetWindowText),附录:Windows窗口消息大全、Windows API大全

    文章目录 一.前言 二.使用Spy++工具分析窗口 三.C#通过Windows API捕获窗口,获取窗口文本 四.附录:Windows窗口消息 五.Windows API大全 1.API之网络函数 2 ...

  9. MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置

    在MFC中,如何获得对话框控件相对于父窗口(对话框窗口)的位置: CRect  r; pWnd->GetWindowRect(&r); 这样获得的r是控件相对于屏幕的坐标,然后用Scre ...

最新文章

  1. 怎样在javascript函数中将变量传递给服务端脚本程序?
  2. RTX 3090的深度学习环境配置指南:Pytorch、TensorFlow、Keras
  3. SAP变式物料的采购如何玩转?看看这篇你就明白了
  4. 也许你所知道的学习方法都是错的
  5. PowerDesigner逆向生成
  6. apmserver导入MySQL_mysql数据库导入导出
  7. ubuntu14.04安装git
  8. CodeSmith将模板文件批量生成文件的方法
  9. 融云 php web在线客户,GitHub - yy526063395/Web-IM-mini: PHP+layIM+融云简单实现版
  10. mysql5性能比较_MySQL 5.7&MySQL 8.0 性能对比
  11. 链接服务器 修改端口号,服务器修改远程链接端口号
  12. python藏头诗生成器_藏头诗生成器
  13. 什么叫智能服务器sn,一篇文章告诉你何为服务器端车牌智能识别
  14. MySQL 性能优化参数分析
  15. dubbokeeper-moniter部署指南
  16. 什么是“可维护性”?
  17. 思维方式-《六顶思考帽》书中的精髓:通过在同一时间只使用一顶思考帽的方法,可以解决思维混乱等问题,从而提升思考效率。
  18. Raspberry Pi 3 Model B入手安装小记
  19. 严重性 代码 说明 项目 文件 行 禁止显示状态 警告 CS8032 无法从...创建分析器...的实例: 未能加载文件或程序集...或它的某一个依赖项。系统找不到指定的文件
  20. Pycharm mac 语法检测失效

热门文章

  1. [MySQL安装问题] HeidiSQL连接MySQL报错——完美解决
  2. c++ 安装、打开、停止、卸载服务实例
  3. 小程序毕设作品之微信校园浴室预约小程序毕业设计成品(6)开题答辩PPT
  4. Python 实现macOS Catalina 动态壁纸定时设置
  5. python pandas 官网_时间序列的Python-Pandas随机抽样
  6. 解决vscode中文注释乱码
  7. Java大厂面试题大全(整理版)1000+面试题附答案详解
  8. SAP BW/4 HANA基础学习(一)
  9. 2022年4月28日 复盘计划
  10. ====单词本====