无模式对话框不关掉,怎样可以接受其他控件传来的值?!

DataSpatial 2004-05-08 06:29:52
CString CSuperusGPSCell::RemoteCell(CString& sSIMNum)
{
CString sOut;
CTianHeDlg TianHeDlg;
TianHeDlg.m_sCarTelNum=sSIMNum;
TianHeDlg.DoModal();
sOut=TianHeDlg.m_sCarTelNum+":"+TianHeDlg.m_sContent;
}

//OnCmdbtn25是TianHeDlg上的一个按钮
void CTianHeDlg::OnCmdbtn25()
{

m_sContent.Format("*HQ,001,S12,%s,E2#",GetStrCurrentTime());
CDialog::OnOK();
}


我的问题是:
怎样让TianHeDlg对话框不关闭,程序却可以执行到sOut=TianHeDlg.m_sCarTelNum+":"+TianHeDlg.m_sContent;
也就是OnCmdbtn25()中的m_sContent可以传到TianHeDlg.m_sContent?

请前辈赐教!!!
...全文
54 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DataSpatial 2004-05-09
  • 打赏
  • 举报
回复
不好意思,我的标题错了,应该是:“模式对话框不关掉,怎样可以接受其他控件传来的值?!”

谢谢!!!
xiaoqiqixiao 2004-05-09
  • 打赏
  • 举报
回复
很奇怪的问题:
你的OnCmdbtn25中调用了CDialog::OnOK(),那么对话框又怎么能不关掉呢;
我们假设你可以做到,那么如果对话框不关掉,那么如果你多按了几次OnCmdbtn25,那么,这个值算哪个对呢?
如果你希望实时的改变CSuperusGPSCell类的某个或某些值,比较干脆的做法是在CTianHeDlg中保存一个CSuperusGPSCell的一个指针m_pParent;
插在
CTianHeDlg TianHeDlg;
TianHeDlg.m_sCarTelNum=sSIMNum;
TianHeDlg.m_pParent = this;
TianHeDlg.DoModal();
然后在
void CTianHeDlg::OnCmdbtn25()
{
m_pParent->.....
}
中,你爱做什么就做什么了。
0xCC0xCC 2004-05-09
  • 打赏
  • 举报
回复
为什么不用非模式对话框?
Jarrylogin 2004-05-08
  • 打赏
  • 举报
回复
在TianHeDlg的WM_INITDIALOG消息中的OnInitDialog()函数中添加
CString sOut;
TianHeDlg.m_sCarTelNum=sSIMNum;
sOut=TianHeDlg.m_sCarTelNum+":"+TianHeDlg.m_sContent;
然后在运行
CString CSuperusGPSCell::RemoteCell(CString& sSIMNum)
{CTianHeDlg TianHeDlg;
TianHeDlg.DoModal();
}
就可执行到了
wangjs720 2004-05-08
  • 打赏
  • 举报
回复
DoModal出来的对话框不关掉,就没有办法再往下执行
ygzdev 2004-05-08
  • 打赏
  • 举报
回复
1.用模式对话框
2.就在TianHeDlg对话框的内部处理
3.在TianHeDlg对话框的内部发消息,外面处理.

你看选哪种

15,979

社区成员

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

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