📄 subject_38514.htm
字号:
<p>
序号:38514 发表者:小豌豆 发表日期:2003-05-04 11:28:11
<br>主题:基于对话框的参数传递问题
<br>内容:我在对话框A中调出对话框B,怎么样把对话框B的参数传给对话框A?<BR>(对话框A并没有被销毁,参数传递的同时销毁A)
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:金枪鱼 回复日期:2003-05-04 12:56:44
<br>内容:<BR><BR>C***Dlg B;<BR>B.strkkk=strKKKA;<BR>B.nkkkk=nKKKA;<BR>......<BR>B.DoModal();<BR>strkkkA=B.strKKK;<BR>nkkkkA=B.nKKK;<BR><BR>这样可以将数据传入到对话框B的成员。<BR>也可以取回对话框B的成员数据到A。<BR><BR>仅仅是一种提示。我不知道你说的参数传递是什么意思,是否是构造函数的形式参数。<BR>在模态对话框下好像难以直接在启动B时销毁A,只有B执行完毕回到A,然后由A根据情况销毁。<BR>可能使用非模态对话框可以实现。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:syncmaster 回复日期:2003-05-04 13:05:41
<br>内容:可以在dialog A 类 里面 加入一个指向B的指针,这样就可以通过指针访问b重的共有成员<BR>class a<BR>{<BR> public:<BR> B *m_bdlg;<BR>....<BR>}<BR>在A的成员函数中: B dialogb; m_bdlg=&dialogb;<BR>dialogb.domodel();<BR>......<BR>m_bdlg->.....(访问b中的成员)<BR>也可以用一个头文件,定义一些全局变量,来传递参数
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:小豌豆 回复日期:2003-05-04 14:31:46
<br>内容:void CDlgA::OnSearch() <BR>{<BR> // TODO: Add your control notification handler code here<BR> CSearch searchdlg;<BR> searchdlg.DoModal();//此时,通过一个消息给m_strSelected负值<BR> m_pSet->Close();<BR> m_pSet->m_strFilter=searchdlg.m_strSelected;<BR> m_pSet->Open();<BR>}<BR>其实我的意思就是在searchdlg对话框中加入查询条件,然后在dlga中进行数据库的查询,但是运行后,发现程序根本没有进行查询?<BR>另外,我前面问的单选框问题就是为了选择查询条件用的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:金枪鱼 回复日期:2003-05-04 15:47:11
<br>内容:你问题是不传递什么都对话框的参数问题,而是CRecordset类的m_strFitler成员的写法问题!<BR><BR>照理解,你的程序是在按Search按钮时,启动一个对话框来获取查询条件,并根据查询条件进行查询。<BR><BR>C×××Dlg::OnSearch()<BR>{<BR> CDlgB b;<BR> if(IDOK==b.DoModal())<BR> {<BR> //设置你的记录集已经构造成功<BR> m_pSet->m_strFilter=_T("fieldname='")+b.strSelect+_T("'");<BR> .........<BR>..........<BR> }<BR>}<BR><BR>另外b中成员strSelect一定要是符合要求类型的成员变量,并且在对话框b退出时要获取对话框的成员变量值(UpdateData(TRUE)).<BR><BR>多看看关于CRecordSet类的使用说明吧<BR>2003-5-4 15:48:47
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -