请问CWnd::m_hWnd成员和AfxGetInstanceHandle()得到的是不是一个东西?

请问CWnd::m_hWnd成员和AfxGetInstanceHandle()得到的是不是一个东西?   我觉得应该不是一个句柄,因为我看到MSDN上说AfxGetInstanceHandle()是指向当前应用程序实例的一个句柄,而 CWnd::n_hWnd是保存了CWnd对象的一个句柄,但是我高不   清楚它们之间的具体区别,我对对“窗口”和“应用程序”以及“句柄”和“实例”等概念还不是特别的清楚请高人给予指教,谢谢!万分感激!!

 

 

窗口是你在屏幕上看到的矩形框,窗口句柄用于操作窗口,每个窗口都有自己的窗口句柄,AfxGetInstanceHandle()得到的是应用程序系统上运行的一个进程实例

一个进程可以有多个窗口

 

this 指针:

this表示当前类的实例的指针,也就是说你 this 在哪个类里,这里 this 就指向哪个类。例如当 this 写在 CTreeView 类的函数里, this 指针就指向 CTreeView 的实例;

m_hInstance:

句柄是一个标识符,是拿来标识对象或者项目的,m_hInstance是应用程序的实例句柄,可以调用 AfxGetInstancdHandle获得句柄.
Example: HANDLE hInstance=AfxGetInstanceHandle();
                HINSTANCE hInstance=AfxGetInstanceHandle();

m_hWnd:

m_hWnd十一个成员变量,最早定义在CWnd中,凡是CWnd派生的类中都有这个窗口类句柄,它是类或对象标示自己的句柄。

获取自己窗口类的句柄方法:

   1   this->m_hWnd;

   2   GetSafeHwnd();

   3   AfxGetMainWnd()->m_hWnd;

 

posted @ 2012-05-14 16:45  carbs  阅读(1494)  评论(0编辑  收藏  举报