FromHandle

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);
}

相關詞條

熱門詞條

聯絡我們