Windows运行机理这系列文章都是来至于《零基础学Qt4编程》——吴迪,个人觉得写得很好,所以进行了搬运和个人加工

1. 窗口

窗口是Windows应用程序中一个非常重要的元素,一个Windows应用程序至少要有一个窗口,称为主窗口,窗口是指现在是屏幕上面的一快矩形区域,是Windows应用程序与用户进行交互的接口。利用窗口,可以接收用户的输入及显示输出。

一个应用程序窗口通常包含标题栏,菜单栏,系统菜单,最小化框,最大化框,可调边框,还有滚动条,一个典型的窗口可以入下图所示

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

窗口可以有一个父窗口,有父窗口的窗口称为子窗口,另外,对话框和消息框也是一种窗口,在对话框上面还包含许多子窗口,这些子窗口的形式有按钮,单选按钮,复选框,组框,文本编辑框等。

此外,在我们启动Windows系统后,我们的创面也是一个窗口,称为桌面窗口,是位于最上层的窗口,有Windows系统创建和管理。

2.句柄

句柄:Handle。Windows具有很强的面向对象德行,Windows对象有很多,碧如桌面,读取所使用的程序等等。那么如何区分这些东西,答案就是使用句柄。句柄是引用不同Windows对象的方式,可以使用Windows句柄,文件句柄,分配内存句柄,图形句柄等,系统在创建这次资源的时候回为期分配内存,并返回标识这些西苑的标识号,这个标识号就是句柄,实际上,我们可以将句柄看做是指针。

在使用句柄之前,必须先创建他们,当不在使用时,应当及时销毁,如果不销毁他们,最终将到时资源泄露,资源泄露有可能导致系统崩溃,所以,务必确保在适当的时候销毁不在使用的句柄。

在Windows应用程序中,窗口是通过句柄HWND来标识的,我们要对某个窗口进行操作,首先就要获取到这个窗口的句柄,这就是窗口和句柄的联系。

Windows运行机理——窗口和句柄的更多相关文章

  1. Windows运行机理——创建窗口

    Windows运行机理这系列文章都是来至于<零基础学Qt4编程>——吴迪,个人觉得写得很好,所以进行了搬运和个人加工 Windows 窗口在创建之前,其属性必须设定好,所谓属性包括类的名字 ...

  2. Windows运行机理——窗口句柄和消息

    Windows运行机理这系列文章都是来至于<零基础学Qt4编程>——吴迪,个人觉得写得很好,所以进行了搬运和个人加工 现在我们将消息与句柄联系起来.假如有一个窗口,且拥有该窗口的一个句柄( ...

  3. Windows运行机理——主程序—WinMain

    Windows运行机理这系列文章都是来至于<零基础学Qt4编程>——吴迪,个人觉得写得很好,所以进行了搬运和个人加工 在windows 操作系统下,用C 或者C++来编写MS-DOS 应用 ...

  4. Windows运行机理——消息与消息队列

    Windows运行机理这系列文章都是来至于<零基础学Qt4编程>——吴迪,个人觉得写得很好,所以进行了搬运和个人加工 Windows程序设计时一种基于消息的时机驱动方式的设计模式,完全不同 ...

  5. Windows运行机理——API与SDK

    Windows运行机理这系列文章都是来至于<零基础学Qt4编程>——吴迪,个人觉得写得很好,所以搬运加以整理. 首先 API:Application Programmaing Interf ...

  6. 在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法

    有时候只是简单的为了测试某个php函数的效果,以前总是需要建一个php文件,复制这个文件的路径,再通过web访问或者用php命令执行这个php文件. 一直想要怎么才能不用创建文件,才能直接执行PHP代 ...

  7. WINDOWS消息和窗口简介

    一.WINDOWS的消息和窗口简介:1.什么是windows在这里我就不介绍了,但是作为一个程序员我们要知道WINDOWS最重要的一个也是我们程序员常用的一个东西就是消息.窗口是以消息的形式输入的,窗 ...

  8. 初级游戏外挂编程详解 windows运行原理+游戏辅助编程 游戏外挂编程

    详解游戏辅助编程 [目录] 1-什么是Windows API 2-Windows进程 3-Windows 的内存的运行原理 4-windows 中句柄的概念 5-Windows的变量类型 6-辅助实现 ...

  9. 《手把手教你》系列技巧篇(二十一)-java+ selenium自动化测试-浏览器窗口的句柄(详细教程)

    1.简介 今天本来就要分享和讲解三大延时等待的,但是在写作过程中发了问题,会用到这一个知识点,于是就提前介绍一下,以便后边用到了可以更好的理解和掌握.本文就是要介绍如何获得浏览器窗体的句柄或者叫编号, ...

随机推荐

  1. 第八章.Spring MVC

    基于MyEclipse开发 工程结构: 所使用到的jar: 代码: FruitControllerTest.java public class FruitControllerTest implemen ...

  2. [转]GeoServer地图开发解决方案(一):环境搭建篇

    GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过 GeoS ...

  3. 上传组件uploadify在spring中返回406 / Not Acceptable 问题解决

    这个问题在chrome中正常.在火狐和ie中就会报这个错误. 原因就是chrome的accept是*/* 火狐和ie的accept是text/* 但是spring的accept清单中是没有text/* ...

  4. 2.java编辑器和java大致内容

    离开了宇宙第一IDE.对java的编辑的选择有点茫然. .net只有一个你不用选择.java好几个.对于追求完美的我来说.总想选个完美的.上网百度可一下.最经典的当然是eclipse了. 但是觉得有点 ...

  5. Entity FreamWork 无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型错误解决

    Entity FreamWork 无法创建“System.Object”类型的常量值.此上下文仅支持基元类型或枚举类型错误解决: 最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指 ...

  6. Vue多个元素展开收起

    html: <div class="helpPages_main"> <div class="read" v-for="(item, ...

  7. 史上最简单的SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)(Finchley版本)

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f12-dash/ 本文出自方志朋的博客 在我的第四篇文章断路 ...

  8. oracle中的事务

     事务 概述:通过sql 对数据库进行操作时,同时执行成功或失败,且数据完整性一致. 链接到oracle的用户(例如plsql或sqlplus)会形成一个session, 此时对数据库的更新操作,不会 ...

  9. JavaScript 中 this 的原理

    一.问题 学习 JavaScript 其中一个标志就是理解下面两种写法,会输出有不一样的结果. var obj = { foo: function () {} }; var foo = obj.foo ...

  10. .Net Core如何在任意位置获取配置文件的内容

    前几天群里有人问,我想在程序里的任意位置读取appsetting.json里的配置,该怎么搞. 话不多说上源码 首先,要想读取配置文件我们要用到IConfiguration 接口,这个接口在Start ...