在一个对话框上点ok蹦出一个模式对话框,在其上的EditBox输入一个数,然后在原来的对话框上显示这个数,怎么做?

mydoom 2003-08-23 03:14:54
我刚开始学MFC,有好多不大明白。有好几个问题,假设原对话框的类是CDialog1,蹦出的模式对话框类是CDialog2.
问题一:怎样让那个模式对话框蹦出来?有几种方法?
是不是void CDialog1::OnOK()
{CDialog2 dlg;
if(dlg.DoModal()==IDOK)
{}
}
就这一种方法吗?还有其他办法吗
问题二:是不是蹦出的模式对话框对象就叫dlg?我怎么用这个名字啊?
void CDialog2::OnOK()
{CString cstrData;
double dData;
m_Data.GetWindowText(cstrData);//其上的EditBox变量名为m_Data属性为CEdit.
dData=atof((LPCTSTR)cstrData);//就是这个dData是想要的数,然后呢?
CDialog::OnOk();
}
是不是那个dlg只能在问题一中的OnOK()里用?这个对话框对象又叫什么名字呢?
问题三:这是最后一个问题,就是:怎么将模式对话框上的这个数传给先前的那个对话框呢?
是不是在Dialog2.h中定义一个CDialog1 M;呢?那又该怎么用呢?
我是刚开始学,请诸位帮帮我吧。最好给出代码,越详细越好。这是我第一个帖子。谢谢先了
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
txdxun 2003-08-29
  • 打赏
  • 举报
回复
9494
加油加油
xiaoliuzi 2003-08-29
  • 打赏
  • 举报
回复
哈哈,大家说的对呀,我搬你up
yushulei 2003-08-28
  • 打赏
  • 举报
回复
dlg 是你定义的对话框类的实列,你可以随便叫什么的。第一个的意思是当你点击确定时
也就是触发了onok函数,在那里面你可以写自己想做的代码。
你想传值就要在当前窗口里得到你想要的值的父窗口的句柄,然后就可以对他的所有变量
进行操作。
建议你先看一下mfc的那个各个类的关系图,先把他的流程搞明白。呵呵,想想当年也和
你差不多。努力吧!朋友。
laolaoliu2002 2003-08-28
  • 打赏
  • 举报
回复
呵呵,是个刚开始学写程序的兄弟,要自己动手多写程序,不能光看的。
txdxun的方法可以。
txdxun 2003-08-28
  • 打赏
  • 举报
回复
好像没甚么C++的基础,还是先看看C++吧
txdxun 2003-08-28
  • 打赏
  • 举报
回复
1、给CDialog2的Edit关联一个变量(使用ClassWizard,不要说你不知道,Ctrl+W),随便CString的还是double的,假设叫做m_value;不需要CDialog2的OnOK,除非你要做一些处理和判断什么的,那就记得要UpdateData
2、在CDialog1里,
CDialog2 dlg;//dlg是你取的对话框的实例的名字,就是一个变量一样,随便是什么都可以
if(dlg.DoModal()==IDOK)//然后就应该使用dlg来访问了
{
//dlg.m_value;//这样就能访问到那个值了,假设是CString的
CString str=dlg.m_value;
GetDlgItem(IDC_XXXX)->SetWindowText(str);//IDC_XXXX是你要显示的CDialog1上面的ID值
//其实前面已经得到了,随便你怎么用了
}

15,979

社区成员

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

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