基于对话框创建子对话框,并父对话框和子对话框之间传值

1、首先是创建子对话框。控件设置好,子对话框类也添加好巴拉巴拉的

CString strPath;
GetDlgItemText(IDC_EDIT_PATH, strPath);//这个用来将控件的值赋给变量的一种方法    还有个SetDlgItemText

CDlgModifyTick dmtdlg( AfxGetMainWnd(),tick); //创建子对话框对象,传入父对话框的句柄以及分笔数据对象

UINT nID = dmtdlg.DoModal(); //切换到子对话框,DoModal这个函数用来显示对话框的意思
if(nID == IDOK) //判断子对话框有没有按下确认键
{
if(MessageBox("确认修改数据?","确认窗口",MB_OKCANCEL)==IDOK)
{
UpdateData(FALSE);//对话框编辑框里面的数据向变量更新
}

2、子对话框里面的变量值传递给父对话框:方法是父对话框类里面建立一个static静态成员函数,然后在子对话框里面调用,把值传过去。

比如。在父对话框.h文件:static void GetDlgDataLine(CString Open,CString High,CString Low,CString Close,CString Money,CString Hold,CString Settle,CString Volumn);

然后在.cpp文件:

void WTSDataViewerDlg::GetDlgDataLine(CString Open,CString High,CString Low,CString Close,CString Money,CString Hold,CString Settle,CString Volumn)

{

n_LOpen=Open;
n_LClose=Close;
n_LHigh=High;
n_LLow=Low;
n_LMoney=Money;
n_LVolumn=Volumn;
n_LHold=Hold;
n_LSettle=Settle;//n_LOpen等等都是自己定义的全局变量}

最后在子对话框.cpp文件中

void CDlgModifyLine::OnBnClickedOkLine()

{

UpdateData(TRUE);//变量的值向控件更新
// 调用函数,将控件变量值传递进去
WTSDataViewerDlg::GetDlgDataLine(m_LineOpen,m_LineHign,m_LineLow,m_LineClose,m_LineMoney,m_LineHold,m_LineSettle,m_LineVolumn);
CDialog::OnOK();

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 jQuery UI 的对话框组件时,你可以通过在对话框中嵌入一个 iframe 来显示另一个页面,并通过 iframe 与父窗口之间的通信来传递数据。具体步骤如下: 1. 在父窗口中,创建一个包含 iframe 的对话框。 ``` $('<div>').html('<iframe src="anotherPage.html"></iframe>').dialog({ modal: true, buttons: { "确定": function() { // 获取返回值并处理 var returnValue = $('iframe').contents().find('#returnValue').val(); // do something $(this).dialog("close"); }, "取消": function() { $(this).dialog("close"); } } }); ``` 2. 在 iframe 中,设置一个表单元素来接收返回值。 ``` <form> <label for="returnValue">返回值:</label> <input type="text" name="returnValue" id="returnValue" /> </form> ``` 3. 在 iframe 中,当用户点击确定按钮时,使用 jQuery 的 postMessage 方法向父窗口发送数据。 ``` $('form').submit(function(event) { event.preventDefault(); var returnValue = $(this).find('#returnValue').val(); window.parent.postMessage(returnValue, '*'); }); ``` 4. 在父窗口中,监听 iframe 的 message 事件,以获取传递过来的数据。 ``` $(window).on('message', function(event) { var data = event.originalEvent.data; // do something with data }); ``` 这样,当用户在 iframe 中点击确定按钮时,表单会提交并通过 postMessage 方法向父窗口发送数据,父窗口可以获得返回值并进行处理。请注意,这种方式存在安全风险,请确保你发送的数据是可信的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值