【翻译】Relationship Between a C++ Window Object and an HWND--CWND对象和HWND的区别和联系


       前言:它们之间的联系和区别在网上也比较多,但是看来看去还是不怎么明白,后面还是老老实实的看了MSDN,然后有了大致的理解,为了加深理解我特将这快翻译出来供大家一起参考,不过英语实在太烂总共只有几句也发现有些翻译的不行,尤其是第三句自己感觉就觉得很不爽,有意见的尽管提,既包括翻译内容也包括对CWND对象和HWND之间的见解。

原文:

The window object is an object of the C++ CWnd class (or a derived class) that your program creates directly. It comes and goes in response to your program’s constructor and destructor calls. The Windows window, on the other hand, is an opaque handle to an internal Windows data structure that corresponds to a window and consumes system resources when present. A Windows window is identified by a “window handle” ( HWND) and is created after the CWnd object is created by a call to the Create member function of class CWnd. The window may be destroyed either by a program call or by a user’s action. The window handle is stored in the window object’s m_hWnd member variable. The following figure shows the relationship between the C++ window object and the Windows window.

Window Object and Windows Window


译文:

窗体对象(window object)是一个由你的程序手动创建的C++的CWND类(或者从该类继承的子类)对象。
它伴随你的程序的构造和析构而被创建和销毁

操作系统窗体(Windows window),从另一方面来说,对于操作系统内部数据结构而言,它是一个透明的
句柄,也就是说它是这样一个窗体,在被创建的时候(直接)消耗着操作系统的资源

这个操作系统窗体("Windws window" )是被 HWND("window handle")所唯一标识的,它是由CWND对象创建后通过调用
CWND类的Create成员函数来创建的。

窗体既可以通过程序来终止也可以通过用户自己来手动终止。

窗体句柄是存储在窗口对象(Window object)的m_hWnd这个成员变量中;

下面这幅图表明了C++的Windows对象和 操作系统的窗体之间的联系,

Window Object and Windows Window



注:
从网上看到了一个比较通俗但是感觉还好理解的比方,如下:
CWND是MFC中窗口的基类,HWND是WINDOWS中窗口对象化管理的一个方面,就像班上人的学号一样,   
 我只要叫一下:“5号,给我倒杯茶”或者“10号,去操场跑一圈”他们就自动去了,我不必要知道他们
怎么倒茶的,或者他们的跑步资势。从实际上来看,HWND可能是一个全局数组的序号,这个数组的一
部分可能就是指向窗口的信息。

你可能感兴趣的:(【翻译】Relationship Between a C++ Window Object and an HWND--CWND对象和HWND的区别和联系)