关于CIpAddresCtrl的GetAddress出错问题

 
建一个对话框模板,类名为 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)  
   
问题原因 :
DoModal 后窗口已经销毁,  对应的 CIPAddressCtrl 控件已经不存在 
解决方法:
可用 OK ()或者其他成员函数保存一个成员变量,存放这个 IP
void CClient_Setting::OnOK()
{
 BYTE   ips[4];  
 CString   m_clientstring;  
 m_ip_address.GetAddress(ips[0],ips[1],ips[2],ips[3]); // 读取 IP m_ip_address CClient_Setting 的成员变量
 m_ipstring.Format("%d.%d.%d.%d",ips[0],ips[1],ips[2],ips[3]);  
 
 CDialog::OnOK();
}
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值