建一个对话框模板,类名为myDlg,里面放置一IP控件,将变量m_ip与之关联。
比如我在视图里的左键消息映射函数里写
DWORD a;
myDlg dlg;
dlg.DoModal();
dlg.m_ip.GetAddress(a);
此时,会在dlg.m_ip.GetAddress(a);报错
追踪进入,得到
{ ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, IPM_GETADDRESS, 0, (LPARAM) &dwAddress); }
_AFXCMN_INLINE void CIPAddressCtrl::SetAddress(DWORD dwAddress)
但如果我将对话框模板的OnOK继承下来
并在里写
DWORD a;
m_ip.GetAddress(a);
却运行正常。
请问这是何故啊?
是不是你DoModal后按OK后窗口就已经销毁了,所以也就出现了窗口无效的错误提示
DoModal后窗口已经销毁
对应的CIPAddressCtrl控件已经不存在
建议不要用GetAddress,可用成员变量DWORD或在OK处保存为成员变量