CDlgMove dlg(NULL);
dlg.DoModal();
HWND hWnd = dlg.GetSafeHwnd(); //<------这里执行后,hWnd竟然是NULL ?????,把代码改为:
CDlgMove *pDlg
pDlg = new CDlgMove(NULL);
pDlg->DoModal();
HWND hWnd = pDlg->GetSafeHwnd();还是同样的效果!!!把CDlgMove dlg(NULL);改为CDlgMove dlg(this);也没任何好转!!!而且,CDlgMove中,目前没有任何代码,只有默认的代码和一个CComboBox
dlg.DoModal();
HWND hWnd = dlg.GetSafeHwnd(); //<------这里执行后,hWnd竟然是NULL ?????,把代码改为:
CDlgMove *pDlg
pDlg = new CDlgMove(NULL);
pDlg->DoModal();
HWND hWnd = pDlg->GetSafeHwnd();还是同样的效果!!!把CDlgMove dlg(NULL);改为CDlgMove dlg(this);也没任何好转!!!而且,CDlgMove中,目前没有任何代码,只有默认的代码和一个CComboBox
看来只能访问变量,不能访问控件?? 呵呵
dlg.DoModal();
之后,dlg这个对话框已经销毁了,句柄当然没有了。改为Modeless的吧,或者另外开一个线程,在dlg仍然还存在的时候获得句柄。
>>看来只能访问变量,不能访问控件?? 呵呵
错CDlgMove dlg(NULL);
HWND hWnd = dlg.GetSafeHwnd(); //放在这里才行!
dlg.DoModal();
dlg.DoModal();
HWND hWnd = dlg.GetSafeHwnd(); //
你想得到hWnd的值,但是你必须执行完DoModal()后才能得到,那么,你DoModal()后,直到有返回时才能看hWnd,这时dlg已经销毁了呀