如何在IDOK == dlg.DoModal()之后获取dlg里面IP控件里面的IP

lp_niux 2010-09-16 03:41:36
RT!
可行立即给分!
...全文
226 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-10-15
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
VR_Lab 2010-09-16
  • 打赏
  • 举报
回复
CMyDlg dlg;
CString str;
if ( IDOK == dlg.DoModal() )
{
GetDlgItem(ID_……)->GetWindowText(str);
}
gameslq 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 lp_niux 的回复:]
引用 8 楼 gameslq 的回复:

刚才的第三步有问题
应该是 AfxMessageBox(dlg.m_IpStr);

也就是你直接调用 dlg.m_IpStr就能使用填写的ip地址了.

>>我希望在别的类里面处理获得的IP数据
可以
if(IDOK == dlg.DoModal())
{
定义个变量把 dlg.m_IpStr 值存起来,不然这段代码
运……

……
[/Quote]
不知你是怎么操作的,详细过程:
1.在CMyDlg类定义:
CString m_dddd;
2. 实现代码

CMyDlg dlg;

if ( IDOK == dlg.DoModal() )
{
ASSERT(&dlg != NULL );
AfxMessageBox(dlg.m_dddd);
}
else
{
ASSERT(&dlg != NULL );
AfxMessageBox(dlg.m_dddd);
}



测试断言都没发生.
Eleven 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lp_niux 的回复:]
引用 3 楼 visualeleven 的回复:

引用楼主 lp_niux 的回复:
RT!
可行立即给分!

在你对话框的类的IDOK按钮的消息响应函数中去获取IP控件的内容

确实可以用,但是如何将获取的IP传递给if里面去呢?我要在if(IDOK == dlg.DoModal())里面处理获得的IP
[/Quote]
定义个CString类型的数据,保存你的IP内容,当然这个设置放在IDOK函数中,将IP内容赋值给CString对象,然后定义个一个public函数,返回这个CString对象即可
lp_niux 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 gameslq 的回复:]

刚才的第三步有问题
应该是 AfxMessageBox(dlg.m_IpStr);

也就是你直接调用 dlg.m_IpStr就能使用填写的ip地址了.

>>我希望在别的类里面处理获得的IP数据
可以
if(IDOK == dlg.DoModal())
{
定义个变量把 dlg.m_IpStr 值存起来,不然这段代码
运……
[/Quote]
我发现在Domadal之后dlg的地址就为0x00000000,使用dlg的时候都会断言出来
gameslq 2010-09-16
  • 打赏
  • 举报
回复
刚才的第三步有问题
应该是 AfxMessageBox(dlg.m_IpStr);

也就是你直接调用 dlg.m_IpStr就能使用填写的ip地址了.

>>我希望在别的类里面处理获得的IP数据
可以
if(IDOK == dlg.DoModal())
{
定义个变量把 dlg.m_IpStr 值存起来,不然这段代码
运行完,dlg销毁 dlg.m_IpStr 值就丢了.
}
具体是全局还是其他类的成员变量,根据项目需要自己定义吧.
lp_niux 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gameslq 的回复:]

1.为dlg对话框 添加ip控件成员变量 public CString m_IpStr;
2.添加dlg的 wm_destroy 消息处理 ,并在消息处理里 添加函数 UpdateData(TRUE);
3.察看结果
if(IDOK == dlg.DoModal())
{
AfxMessageBox(m_IpStr);
}
[/Quote]
我希望在别的类里面处理获得的IP数据
lp_niux 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]

引用楼主 lp_niux 的回复:
RT!
可行立即给分!

在你对话框的类的IDOK按钮的消息响应函数中去获取IP控件的内容
[/Quote]
确实可以用,但是如何将获取的IP传递给if里面去呢?我要在if(IDOK == dlg.DoModal())里面处理获得的IP
gameslq 2010-09-16
  • 打赏
  • 举报
回复
1.为dlg对话框 添加ip控件成员变量 public CString m_IpStr;
2.添加dlg的 wm_destroy 消息处理 ,并在消息处理里 添加函数 UpdateData(TRUE);
3.察看结果
if(IDOK == dlg.DoModal())
{
AfxMessageBox(m_IpStr);
}

QQ282881515 2010-09-16
  • 打赏
  • 举报
回复
或者这样:
GetDlgItem(ID_……)->GetWindowText(str);
lp_niux 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 woailp___2005 的回复:]

添加控件变量
if(IDOK == dlg.DoModal())
{
Updatedata(TRUE);

......
}
[/Quote]
窗口销毁了 ,UpdateData()没效
Eleven 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 lp_niux 的回复:]
RT!
可行立即给分!
[/Quote]
在你对话框的类的IDOK按钮的消息响应函数中去获取IP控件的内容
Q446512799 2010-09-16
  • 打赏
  • 举报
回复
添加控件变量
if(IDOK == dlg.DoModal())
{
Updatedata(TRUE);

......
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧