MFC通过对话框窗口句柄获得对话框对象指针
MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决.
HWND hWnd=::FindWindow(NULL,_T("Sphere")); //得到对话框的句柄
C***Dialog* pWnd= (C***Dialog*)FromHandle(hWnd); //由句柄得到对话框的对象指针
pWnd->xxx( ); //调用C***Dialog中的函数xxx();
通过窗口类函数:CWnd *GetWindow获得窗口指针,pWnd->m_hWnd(The handle of the Windows window attached to this CWnd)在::FromHandle(hWnd);
HWND hWnd=::FindWindow(NULL,_T("Sphere")); //得到对话框的句柄
C***Dialog* pWnd= (C***Dialog*)FromHandle(hWnd); //由句柄得到对话框的对象指针
pWnd->xxx( ); //调用C***Dialog中的函数xxx();
通过窗口类函数:CWnd *GetWindow获得窗口指针,pWnd->m_hWnd(The handle of the Windows window attached to this CWnd)在::FromHandle(hWnd);
获取主窗口句柄:
CWnd *wnd = AfxGetMainWnd();
HWND hwnd = wnd->GetSafeHwnd();
设置控件为窗口焦点:
GetDlgItem(IDC_TREE1)->SetFocus();
获取控件句柄:
HWND hwndctrl = ::GetDlgItem(mainHwnd, IDC_TREE1);
//
获取树形控件的句柄
IDC_TREE IDC_COMBO1
获取当前最上层窗口的句柄: HWND mainHwnd = ::GetForegroundWindow();//获取当前topmost的窗口句柄
获取当前窗口的焦点句柄: HWND currentFocus = ::GetFocus();