我试图让使用此代码对话框的句柄:m_hWnd成员变量为空
class CStatisticsDlg : public CDialogEx
{
public:
CStatisticsDlg();
// Dialog Data
enum { IDD = IDD_STATISTICS };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
public:
};
CStatisticsDlg::CStatisticsDlg() : CDialogEx(CStatisticsDlg::IDD)
{
}
void CStatisticsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
// DDX_Control(pDX, IDC_FUCK, m_fuck);
}
BEGIN_MESSAGE_MAP(CStatisticsDlg, CDialogEx)
END_MESSAGE_MAP()
但是,当我创建类的这个实例:
CStatisticsDlg statisticsDlg;
并尝试通过statisticsDlg.m_hWnd
获取其句柄,句柄为空。
为什么会出现这种情况?获取对话框句柄的最佳方法是什么?
你什么时候尝试拿到手柄?它可能不会被创建,直到显示对话框。 –
我呼叫statisticsDlg.DoModal()后; – user3126297
在您拨打电话并回电后?然后对话框不再存在,并且不再有窗口句柄。 – Timbo