创建了一个基于对话框的MFC程序,然后又插入了一个对话框(注册的类为CAddDVR),该对话框上有一个ip控件(m_ip),和两个编辑框控件(m_name和m_password,用户名和密码),还有一个确定按钮和一个取消按钮,代码如下:
CAddDVR dlg;
CString ip,name,password;
if(dlg.DoModal()==IDOK)
{
BYTE b1,b2,b3,b4;
dlg.m_ip.GetAddress(b1,b2,b3,b4);
ip.Format("%d.%d.%d.%d",b1,b2,b3,b4);
dlg.m_name.GetWindowText(name);
dlg.m_password.GetWindowText(password);
}
这样编译没问题,可以运行,但是我输入ip地址,用户名和密码后,单击确定程序立马异常终止,检查n遍了,真快崩溃了,特来请教各位大牛啊
CAddDVR dlg;
CString ip,name,password;
if(dlg.DoModal()==IDOK)
{
BYTE b1,b2,b3,b4;
dlg.m_ip.GetAddress(b1,b2,b3,b4);
ip.Format("%d.%d.%d.%d",b1,b2,b3,b4);
dlg.m_name.GetWindowText(name);
dlg.m_password.GetWindowText(password);
}
这样编译没问题,可以运行,但是我输入ip地址,用户名和密码后,单击确定程序立马异常终止,检查n遍了,真快崩溃了,特来请教各位大牛啊
解决方案 »
- 子对话框无反应
- 请教大家,如何用自己做的浏览器打开msn邮箱
- 既然MFC在所有窗口创建的时候用AfxWndProc替换掉了原窗口过程,那还要SubclassWindow方法做什么?
- 问一个简单的问题,急。
- 关于数据类转为string的问题
- 请问函数::AnimateWindow(...);干什么的
- 有关在SDI中用代码创建CMSComm 的实例的问题
- 谁会Internet API编程
- 不好意思!又来麻烦大家了!我已经禁止鼠标拖动窗口,但是它又带来了新的问题!它把鼠标的按下动作都屏蔽了!这下连菜单都响应不了了!求教!
- c++ 释放指针并赋值为null之后,其他包含该指针的容器的元素如何赋值为NULL?
- VC中, 什么try 语句(或其它语句)可实现以下功能;
- 关于IE的"安全警报"
的指针或引用传入CAddDVR,作为CAddDVR的参数
然后在CAddDVR的onok中给他们赋值
DoModal()函数是一个阻塞类型的函数,在它调用的对话框界面关闭之前,此函数后面的语句无法执行,而你把获取数据的代码写在了此函数的后面
dlg.m_ip.GetAddress(b1,b2,b3,b4);//注意这句代码会直接从界面控件上去取得数据
当点击确定按钮后,对话框界面就关闭(但是对象还在的),所以执行获取界面上数据的代码会出错.解决:
我上面讲了虽然界面不在了,但是对象还在,你在那个对话框类中加几个成员变量,点击确定时先给这几个变量赋值,后面就能使用这几个变量中的数据了.