MFC和Win32技术应用分析_泛亚电竞官网

发布时间:2021-06-02    来源:泛亚电竞官网 nbsp;   浏览:79461次
本文摘要:MFCObject和WindowsObject的关联MFC中最重要的PCB是对Win32API的PCB,因而,讲解WindowsObject和MFCObject(C 对象,一个C 类的案例)中间的关联是讲解MFC的重要之一。

泛亚电竞

MFCObject和WindowsObject的关联MFC中最重要的PCB是对Win32API的PCB,因而,讲解WindowsObject和MFCObject(C 对象,一个C 类的案例)中间的关联是讲解MFC的重要之一。说白了WindowsObject(Windows对象)是Win32下要句柄答复的Windows电脑操作系统对象;说白了MFCObject(MFC对象)是C 对象,是一个C 类的案例,这儿(这书范畴内)MFCObject是有特殊含意的,指PCBWindowsObject的C Object,并不是指给出的C Object。MFCObject和WindowsObject是不一样的,但二者密切联系。

以对话框对象为例证:一个MFC对话框对象是一个C CWnd类(或派生类)的案例,是程序流程必需创立的。在程序运行中它伴随着对话框类构造方法的启用而溶解,伴随着析可分涵数的启用而消退。而Windows对话框则是Windows系统软件的一个內部算法设计的案例,由一个对话框句柄标志,Windows系统软件创立它并给它分派服务器资源。

Windows对话框在MFC对话框对象创立以后,由CWnd类的Create成员函数创立,对话框句柄存留在对话框对象的m_hWnd成员函数中。Windows对话框能够被一个程序流程封存,还可以被客户的姿势封存。MFC对话框对象和Windows对话框对象的关联如图2-1下图。

别的的WindowsObject和相匹配的MFCObject也是有类似的关联。下边,对MFCObject和WindowsObject作一个比较。

泛亚电竞

一些论点论据对设备描述报表(MFC类是CDC,句柄是HDC)有可能不限于,但确立涉及到的时候会觉得。从算法设计上比较MFCObject是适度C 类的案例,这种类是MFC或是程序猿界定的;WindowsObject是Windows系统软件的内部构造,根据一个句柄来提及;MFC给这种类界定了一个成员函数来存留MFCObject相匹配的WindowsObject的句柄。

泛亚电竞

针对设备描述报表CDC类,将存留2个HDC句柄。从层级上谈比较MFCObject是高层住宅的,WindowsObject是矮层的;MFCObjectPCB了WindowsObject的绝大多数或所有作用,MFCObject的使用人不务必必需应用于WindowsObject的HANDLE(句柄)用于Win32API,更换它的是提及适度的MFCObject的成员函数。从创立上比较MFCObject根据构造方法由程序流程必需创立;WindowsObject由适度的SDK涵数创立。MFC中,用于这种MFCObject,一般分二步:最先,创立一个MFCObject,或是在STACK中创立,或是在HEAP中创立,这时候,MFCObject的句柄实例变量为空,也就是说并不是一个合理地的句柄。

随后,启用MFCObject的成员函数创立适度的WindowsObject,MFC的句柄自变量储存一个合理地句柄。CDC(设备描述表类)的创立各有不同,在后面的2.3节会确立表述CDC以及派生类的创立和用于。自然,能够在MFCObject的构造方法中创立适度的Windows对象,MFC的GDI类便是这般搭建的,但从本质上谈,MFCObject的创立和WindowsObject的创立是两码事。

泛亚电竞

从转换上比较能够从一个MFCObject得到 相匹配的WindowsObject的句柄;一般用于MFCObject的成员函数GetSafeHandle得到 相匹配的句柄。能够从一个已不会有的WindowsObject创立一个相匹配的MFCObject;一般用于MFCObject的成员函数Attach或是FromHandle来创立,前面一种得到 一个永久对象,后面一种得到 的有可能是一个临时性对象。从用于范畴上比较MFCObject系统对的别的过程而言不是由此可见、不能用的;而WindowsObject一旦创立,其句柄是全部Windows系统软件全局性的。

一些句柄能够被别的过程用于。典型性地,一个过程能够获得另一过程的对话框句柄,并给该对话框发送至信息。对同一个过程的进程而言,只能够用于本进程创立的MFCObject,没法用于别的进程的MFCObject。

从封存上比较MFCObject伴随着析可分涵数的启用而消退;但WindowsObject必不可少由适度的Windows系统软件涵数封存。设备描述报表CDC类的对象各有不同,它相匹配的HDC句柄对象有可能并不是被封存,只是被出狱。自然,能够在MFCObject的析构函数中顺利完成WindowsObject的封存,MFCObject的GDI类等便是这般搭建的,可是,理应看到:二者的封存是各有不同的。


本文关键词:泛亚电竞,泛亚电竞官网

本文来源:泛亚电竞-www.noshbus.com