FromHandle(HANDLE h)

来源:互联网 发布:龙门县网络问政 编辑:程序博客网 时间:2024/04/30 14:07

   MFC 实际上是对内核对象HANDLE(如CDC的m_hDC,CWnd的m_hWnd)封装了这个句柄有关的所有操作,一个类生成一个新对象的时候这个句柄是无效的,要获得这个句柄,可以有两个方法,一个是Create来创建,另一个就是用Attach来与一个已有的句柄建立关联,实际上也就是给类的句柄成员变量赋值。

 而有个时候这个句柄不是由我们创建,但是我们要对它的封装类进行操作,(mfc 框架)必需创建对应的封装类包装它

 MFC 中对各种包含内核对象的封装类都有FromHandle(HANDLE h)方法

  FromHandle(HANDLE h) 先查找由用户定义的内核对象对象的封装类, 如果找到直接返回,没有找到构造一个临时对象返回.

 

例如:

 void CListViewEx::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
  {
      CListCtrl& ListCtrl=GetListCtrl();

      //构造了一个句柄是lpDrawItemStruct->hDC包装类
     CDC* pDC = (CDC *)CDC::FromHandle(lpDrawItemStruct->hDC);

}

原创粉丝点击