接触MFC一段时间了,发现在进行窗口操作时,最频繁使用的就是指针、句柄和ID的相互转换了,总结了一套方法如下:
假设对于同一个窗口而言,其指针是pWnd,句柄是hWnd,ID是nID,那么三者相互转换了方法如下:
指针->句柄:hWnd = pWnd->GetSafeHwnd();
ID->句柄:hWnd = ::GetDlgItem(hParentWnd, ID);
句柄->指针:pWnd = CWnd::FromHandle(hWnd);
ID->指针:pWnd = Cwnd::GetDlgItem();
指针->ID:ID = GetWindowLong(pWnd->GetSafeHwnd(), GWL_ID);
句柄->ID:ID = GetWindowLong(hWnd, GWL_ID);
其中,ID->句柄和ID->指针的转换函数GetDlgItem再具体使用过程中需要查询MSDN。