GetDc(m_hWnd)中m_hWnd是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:46:17
根据查MSDN发现GetDc()括号中要有一个句柄.
查MSDN,m_hWnd是一个The m_hWnd data member is a public variable of type HWND.句柄公开的.
在VC++6.0中查询.的确有这个定义.但是我不知道这是什么意思?代表什么
这么多的句柄.为什么要选这个呢?
查MSDN如下
CWnd::m_hWnd
Remarks

The handle of the Windows window attached to this CWnd. The m_hWnd data member is a public variable of type HWND.

我觉得
第一步:是GetDc必须要获取一个句柄.
第2步:而句柄派生于那个图像类.而那个图像类派生于CWnd,
而如上所述m_hWnd是Cwnd的一个默认且公开的类.
第3步:于是顺理成章的用m_hWnd了

我编的是一个画线的小程序.不知道我的思维是不是对的?

m_hWnd是个句柄,不是类
至于为什么要选这个,是因为你是要得到在m_hWnd句柄代表的窗口的DC,你用了别的就得到另一个DC了

m_hWnd是窗口类封装的一个句柄,凡是从CWnd派生的类都有这个句柄,凡是以CWnd派生的类定义的对象内部也都有这个句柄,它是类或者对象标识自己的句柄。
凡是窗口都有一个句柄用来标识自己,在CWnd类中将这个句柄作为一个成员变量直接封装了,所以CWnd类的成员函数都没有句柄这个参数了,比如::ShowWindow(HWND hWnd),在CWnd类或者派生类中,这个函数就没有参数了,CWnd::ShowWindow(),其实这个函数实现很简单,就是调用了::ShowWindow(HWND hWnd),因为在类里已经封装好了,所以也不需要在传递参数了,。

DC 是设备对象,Windows中每个窗口都对应一个DC,所以你要在哪里画需要获得对应窗口的DC。 :)

m_hWnd是个句柄

你可以看看Win32编程中是怎么创建窗口的.