窗口句柄是什么意思,窗口的句柄是什么意思
窗口句柄是什么意思,窗口的句柄是什么意思详细介绍
本文目录一览: 什么是窗口句柄?
Windows 操作系统中是用句柄来辨识的,比如一个窗口就有相应的窗口句柄,句柄是一个十六进制的长整型 long 比如
0x0001245
被VC定义为 Handle
句柄就是个数字,一般和当前系统下的整数的位数一样,比如32bit系统下就是4个字节。
这个数字是一个对象的唯一标示,和对象一一对应。
这个对象可以是一个块内存,一个资源,或者一个服务的context(如 socket,thread)等等。
这个数字的来源可以有很多中,只要能保证和它代表的对象保持唯一对应就可以,比如可以用内存地址,也可以用句柄表的序号,或者干脆用一个自增ID,再或者用以上的值去异或一个常数。
扩展资料:
windows 之所以要设立句柄,根本上源于内存管理机制的问题—虚拟地址,简而言之数据的地址需要变动,变动以后就需要有人来记录管理变动,(就好像户籍管理一样),因此系统用句柄来记载数据地址的变更。
传统上操作系统内核和系统服务API都是 C 语言接口的,但是其内部设计理念上又是OO的,所以有对象概念却没有对应的语言语法支持。
句柄的作用就是在 C 语言环境下代替 C++ 的对象指针来用的,创建句柄就是构造,销毁句柄就是析构,用句柄调用函数相当于传入this指针。
如果有系统API是 C++ 接口的,那么就没有句柄了,而是某个接口指针,IXXXPtr之类的,比如Windows的com ptr。
参考资料来源:百度百科-句柄
C++的 HWND hWnd;是什么意思?
HWND
是
Handle
of
Window的缩写吧,就是窗口句柄的意思
句柄就是唯一表示某样东西的一个好码,就像身份证一样,windows里当前打开的所有窗口都有自己的ID,那个ID就是句柄
定认义个窗口句柄变量hWnd。
HWND 是一个基本类型,和char int等同级别的,可以把它当做long型去看待,和身份证号一样。
HWND,h 是类型描述,表示句柄(handle), Wnd 是变量对象描述,表示窗口,所以hWnd 表示窗口句柄。hWnd 属性,返回窗体或控件的句柄(注意 OLE 容器控件不支持该属性。句柄:是由操作环境定义的一个唯一的整数值,它被程序用来标识或者切换到对象,如窗体或控件等。
扩展资料:
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。
每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
参考资料来源:百度百科-C++
窗口的句柄是什么意思
Windows通过句柄来分配并控制窗口(不只是窗口, 其它很多资源都如此). 它实际就是一个整数. 比如你在程序中向Windows申请打开一个窗口, 如果成功, Windows就会告诉你成功了, 并给你刚申请到的窗口的句柄, 以后你就可以用它进行窗口的一些操作了. 可是在Delphi中通常不用管它. 当然它十分重要, 但一般Delphi会自行处理. 如果你想涉及一些较底层的编程就要和它打交道了.
易语言中的“取窗口句柄”是什么意思?句柄是什么含义?
打个比方吧.
比如,你有身份证号,一报身份证号,你应该知道是你了.
你也有名字.当然名字复杂点,没有数字来得方便,
所以,窗口句柄就相当于身份证号.每个窗口都有一个编号,操作系统用这个编号来发送消息的.这就是操作系统的消息机制.
一个窗口如果里面有组件的话,那么每个组件也会有窗口句柄,这里的窗口提的是WINDOW,不带那个S的.表示的就是一个框.所以说,翻译上的不同,我认为,也可以翻译成"框句柄",这比较符合实情,呵呵.接下来,就可以对这个句柄进行操作了.
如果可以隐藏一个窗口,就发送消息让他隐藏,这里就用到API,当然API是比较多的,所有的功能都是通过API实现的.因此.........你还是学一下俱乐部论坛上GOOMOO写的"易精经"这本电子教程吧.百度上也能搜索到的.
句柄简单的说就是操作系统内部定义的窗口创建的编码,用来识别是哪一个窗口,取句炳就是取当前操作窗口的意思。要不然就不知道程序操作哪个窗口了。!
一个窗口每运行一次这个窗口的句柄都是随即的
想要对这个窗口进行操作首先就要取出这个窗口的句柄
例如操作一个窗口,或说是一个Delphi窗体时,系统会给一个该窗口的句柄,系统会通知:正在操作142号窗口,就此应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口最小化等等。
在Windows中,句柄为一个系统内部数据结构的引用。通过它能引用受系统控制的特殊元素,如窗口、位图、图标、内存块、光标、字体、菜单等。
扩展资料
数据对象加载进入内存中之后即获得了地址,但是这个地址并不是固定的,数据对象会根据需要在内存与硬盘之间游弋移动(例如不常用的数据会为常用数据让出其占用的内存空间,进而被淘汰进硬盘虚拟内存之中以优化配置整体系统的资源,从而提升效率性能)。
因此其物理地址总是变动的,那么作为管理者则必须对管理对象所发生的变化了如指掌才行,因此系统为进程分配固定的地址(句柄)来存储进程下的数据对象变化后的地址,也就是当前的地址。
设计机制:系统的某个部门移动了对象的地址后,同时上报给句柄所属部门管理者,管理者将改动写入句柄即可。该数据被重新起用时去其所属句柄内按内容存取即可。
参考资料来源:百度百科-句柄
参考资料来源:百度百科-窗口句柄
窗口属性和窗口句柄属性是什么意思
窗口句柄是系统分配的唯一标识,跟身份证一样,你用这个句柄(一个长整型long)可以找到这个窗口,可以对它进行操作窗口属性是窗口的一系列特征,比如说窗口有没有边框,有没有最小化,最大化按钮,在任务栏上面有没有显示,窗口现在可见吗?等等的属性,太多,我列不完GetActiveWindow是取得现在被激活窗体的句柄,也就是其他窗口是灰色时,这个窗口是蓝色的,最前面这个GetWindowLongA是取得窗口的属性,得到一个LONGSetWindowLongA是设置窗口属性你可以用GetWindowLongA取得窗口属性,改完之后再用SetWindowLongA设置回去,就可以看到效果
窗口句柄是什么型的?
Windows 操作系统中是用句柄来辨识的,比如一个窗口就有相应的窗口句柄,句柄是一个十六进制的长整型 long 比如
0x0001245
被VC定义为 Handle
是对内存的一个标识,为整数
句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个windows函数来获得一个句柄,之后其他的windows函数就可以使用该句柄,以引用相应的对象。在windows编程中会用到大量的句柄,比如:hinstance,hbitmap,hdc,hicon等等,这当中还有一个通用的句柄,就是handle,
句柄是什么意思
1、句柄为一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
2、整个Windows编程的基础,一个句柄指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。
应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。
扩展资料
windows需要向程序员提供必要的编程接口,在这些接口中,允许程序员访问、创建和销毁对象。但是,出于封装地考虑,windows并不想向程序员返回指针。指针包含了太多的信息。
首先指针给出了对象存储的确切位置;其次,要操作一个指针,程序员必须知道指针所指对象的内部结构特征,也即,windows必须向程序员暴露相应的数据结构,而这些数据结构也许是操作系统想向程序员隐藏的。
如果说COM技术向用户隐藏了数据,只暴露了接口并只允许按接口定义的方法操作数据的话,句柄这种方式则允许按自己的方式直接操作数据,但windows又不直接暴露数据。直接操作数据是程序员需要的,不暴露数据为windows所需要的,句柄封装方式实现了各取所需。
参考资料来源:百度百科-窗口句柄
参考资料来源:百度百科-句柄
这是操作系统里的一个概念,句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。
从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。
如果想更透彻一点地认识句柄,我可以告诉大家,句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找该对象呢?
为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不变的。Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存。这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置。这个地址是在对象装载(Load)时由系统分配给的,当系统卸载时(Unload)又释放给系统。
句柄地址(稳定)→记载着对象在内存中的地址————→对象在内存中的地址(不稳定)→实际对象
本质:WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。
但是必须注意的是程序每次从新启动,系统不能保证分配给这个程序的句柄还是原来的那个句柄,而且绝大多数情况的确不一样的。假如我们把进入电影院看电影看成是一个应用程序的启动运行,那么系统给应用程序分配的句柄总是不一样,这和每次电影院售给我们的门票总是不同的一个座位是一样的道理。
句柄(handle),有两种解释
1,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
2,整个Windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节长的数值,来标识应用程序中的不同对象和同类中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。
扩展资料:
注意事项:
1,内核对象句柄,是用来标识某个内核对象的一个ID 同一个对象的该id对于每个进程是不同的,具体如何实现是ms不公开的算法,以下是一个近似的,可能的算法。
2,进程创建时,windows系统为进程构造了一个句柄表。
3,当该进程希望获得一个内核对象句柄或者创建一个内核对象从而获得该对象句柄时。
4,系统会将在句柄表中增加一个表项,表项的内容中存储了指向目标内核对象的指针。
同时,系统返回这个表项在句柄表中的索引作为句柄。
参考资料:百度百科——句柄
delphi中HWND是什么意思?
窗口句柄,它可以在程序中代表一个组件指针,存放的是某个组件的内存地址入口,当成一般变量的指针理解就可以了
全称是 Handle of Window
是一个窗体的句柄,基于THandle。
有别的问题还可以问,分不重要。
窗口句柄
h:handle
wnd:window
通过它能访问该窗口
句柄
全称是 Handle of Window
是一个窗体的句柄,基于THandle。
有别的问题还可以问,分不重要。
易语言里取窗口句柄什么意思,一般用在什么地方
窗口的句柄好像是人的身份正一样,
拿到了窗口句柄,就可以进行很多操作,例如操作其它软件的窗口里股的文本框,向外部文本框发送消息, 自动填写内容, 控制外部软件置顶, 监控外部软件是否运行,
例如说,你写了一个软件,有时挂一晚上,你不知道是不是突然停止了, 你再写一个软件,监控它,如果软件无意停止关闭了, 另一个软件就是通过句柄来判断它是否在运行,可以做一些事情