窗口定义

窗口是 Windows 应用程序中一个非常重要的元素,一个 Windows 应用程序至少要有一个窗口,称为主窗口。窗口是屏幕上的一块矩形区域,是 Windows 应用程序与用户进行交互的接口。利用窗口可以接收用户的输入、以及显示输出。一个应用程序窗口通常都包含标题栏、菜单栏、系统菜单、最小化框、最大化框、 可调边框,有的还有滚动条。如下图:

窗口可以分为客户区和非客户区, 如上图。 客户区是窗口的一部分, 应用程序通常在客户区中显示文字或者绘制图形。 标题栏、 菜单栏、 系统菜单、 最小化框和最大化框、 可调边框统称为窗口的非客户区, 它们由 Windows 系统来管理, 而应用程序则主要管理客户区的外观及操作。

窗口可以有一个父窗口, 有父窗口的窗口称为子窗口。除了上图所示类型的窗口外, 对话框和消息框也是一种窗口。 在对话框上通常还包含许多子窗口, 这些子窗口的形式有按钮、 单选按钮、 复选框、 组框、 文本编辑框等。

在 Windows 应用程序中, 窗口是通过窗口句柄( HWND) 来标识的我们要对某个窗口进行操作, 首先就要得到这个窗口的句柄。 句柄( HANDLE) 是 Windows 程序中一个重要的概念, 使用也非常频繁。 在 Windows 程序中, 有各种各样的资源( 窗口、 图标、光标,画刷等), 系统在创建这些资源时会为它们分配内存, 并返回标识这些资源的标识号, 即句柄。 在后面的内容中我们还会看到图标句柄( HICON)、 光标句柄( HCURSOR) 和画刷句柄( HBRUSH)。

MFC基础教程之窗口定义(一)相关推荐

  1. mfc基础教程(学习笔记)

    目录 mfc基础教程 第一章:CDC的使用 第二章:文本编程 第三章:菜单 第四章:对话框 第五章:对话框(二) 第六章:样式 第七章:创建兼容DC 第八章:图形的保存与重绘 第九章:文件 第十章:文 ...

  2. python类class定义_python基础教程之类class定义使用方法

    面对对象(oop)中的对象,是一个非常重要的知识点,我们可以把它简单看做是数据以及由存取.操作这些数据的方法所组成的一个集合.我们在学习函数(function)之后,知道了如果重用代码,那为什么还要用 ...

  3. C语言基础教程 之 如何定义变量!

    变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储.变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示: type variable_list; 在这里,type ...

  4. C语言基础教程之如何定义变量

    变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储.变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示: type variable_list; 在这里,type ...

  5. C++基础教程之如何定义数字

    C++ 数字 通常,当我们需要用到数字时,我们会使用原始的数据类型,如 int.short.long.float 和 double 等等.这些用于数字的数据类型,其可能的值和数值范围,我们已经在 C+ ...

  6. 莫烦Python[基础教程]

    python基础教程一 安装 定义功能 函数参数 函数默认参数 可变参数 关键字参数 变量形式 模块安装 文件读取 文件读取1 文件读取2 文件读取3 Class类 input输入 元组.列表.字典 ...

  7. javascript基础教程_JavaScript基础教程(九)对象、类的定义与使用

    对象.类的定义与使用 对象与类是面向对象程序设计语言教学过程中不可避免需要讲解的内容之一.很多人将两者混为一谈,简单认为对象就是类,类就是对象.实际上深入分析的话,对象与类的区别还是较为明显的.本文主 ...

  8. VTK+MFC 系列教程 非常强大

    虽然QT才是王道!MFC的懂一些也是好的. 原文链接:http://blog.csdn.net/www_doling_net/article/details/8939115 之前介绍了基于VTK的单文 ...

  9. C#基础教程-c#实例教程,适合初学者

    C#基础教程-c#实例教程,适合初学者. 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和W ...

  10. Visual C++/MFC入门教程

    Visual C++/MFC入门教程 VC开发指南 1.1 如何学好VC 这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果.万事开头难,为了帮助朋友 ...

最新文章

  1. 搜索引擎solr和elasticsearch
  2. iOS之深入解析malloc的底层原理
  3. LoadRunner 脚本语言认识
  4. python怎么通过占位符_如何输入占位符?
  5. BZOJ3233:[AHOI2013]找硬币(DP)
  6. ubuntu简单安装oracle,Ubuntu上Oracle10g安装是一件很简单的事情
  7. mid=(left+right)1什么含义
  8. 【C语言】输出一个菱形
  9. 三、Android开启wifi热点
  10. 电影外观调色效果Lr预设
  11. Hadoop学习笔记(四)HDFS部分下
  12. 【iOS】首行缩进两个字符
  13. ElasticSearch Aggs的一些使用方法
  14. WinEdt Latex 在字母上加两个点
  15. 新书上市|一位家长的忠告:长大后不成才的孩子,父母都忽视了这个点!
  16. Android Studio导入ZXING
  17. 计算机专业英语学术能力培养任伟课后题答案,北京航空航天大学任伟教授学术讲座在我院成功举办...
  18. 微信支付公的众号支付和扫码支付
  19. 用 HI3559A / Hi3519A 接入 BT1120或BT656视频
  20. 鸿蒙系统有哪些型号可以尝鲜,支持数十款机型!鸿蒙系统尝鲜计划出炉,荣耀用户要失望了...

热门文章

  1. 【leetcode】面试题 03.03. 堆盘子vector_stack的使用
  2. Linux Tomcat Cluster
  3. 【Android Studio安装部署系列】三十一、从Android studio3.0.0升级到Android studio3.0.1
  4. iOS语言中的代理模式
  5. poj 3295 Tautology (构造)
  6. 技术开发人员,一些需要注意的权利和义务
  7. Linux上安装Oracle 10g 装后感
  8. 【JOURNAL】Salles de SV Toulouse
  9. Sparse Principal Component Analysis
  10. 【刷题】LOJ 6007 「网络流 24 题」方格取数