子对话框修改主对话框的属性和控件

假设主对话框叫MainDlg,子对话框叫AccountsDlg,按下列步骤来:
第一步:在主对话框程序创建子对话框函数中: 
   CAccountsDlg dlg(this);//一定要加this,否则楼上几位说的都不可能实现你要求的,this是将MainDlg指针传递给AccountsDlg

第二步:在子对话框头文件中引用主对话框头文件,并添加主对话框指针变量: 
   #include "MainDlg.h" 
  Class CAccountsDlg ::public CDialog
 {
   public:CMainDlg* pParentDlg;  
 }

第三步:在子对话框程序构造函数中: (你该知道什么叫构造函数吧?就是以类名同名的那个函数)
   pParentDlg = (CMainDlg*)pParent;   //这个pParent就是刚才this传递过来的

第四步:在子对话框的任意函数中自由改变主对话框的任意public变量,或调用主对话框的任意public函数
   pParentDlg->variable = xxx;           //子-->主,变量

   yyy = pParentDlg->GetValueFunction(); //主-->子,函数

参考自:http://bbs.csdn.net/topics/300191320

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MFC中的对话框(Dialog)是Windows应用程序中常用的用户界面元素之一,它可以用来显示一些信息或者与用户进行交互,比如输入一些数据或者选择一些选项等。同时,对话框还可以用来浏览或者编辑文件。 在MFC中,打开或者保存文件对话框可以使用CFileDialog类。这个类提供了一些成员函数和属性,可以用来定制对话框的外观和功能。 下面是一个简单的示例,演示如何使用CFileDialog类来实现文件的打开和保存。 1. 打开文件对话框 ```cpp CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"), this); if (dlg.DoModal() == IDOK) { CString filename = dlg.GetPathName(); // 在这里处理选中的文件 } ``` 2. 保存文件对话框 ```cpp CFileDialog dlg(FALSE, _T("txt"), _T("Untitled.txt"), OFN_OVERWRITEPROMPT, _T("Text Files (*.txt)|*.txt|All Files (*.*)|*.*||"), this); if (dlg.DoModal() == IDOK) { CString filename = dlg.GetPathName(); // 在这里处理保存的文件 } ``` 在上面的示例代码中,CFileDialog的构造函数有5个参数,分别是: - BOOL bOpenFileDialog:指定对话框是打开还是保存文件,TRUE表示打开文件对话框,FALSE表示保存文件对话框。 - LPCTSTR lpszDefExt:指定默认文件扩展名,可以为NULL。 - LPCTSTR lpszFileName:指定默认文件名,可以为NULL。 - DWORD dwFlags:指定对话框的一些属性,比如文件必须存在还是隐藏只读文件等,可以使用位运算符组合多个属性。 - LPCTSTR lpszFilter:指定文件筛选器,用来限制用户可以选择的文件类型。 在执行DoModal()函数后,如果用户点击了“确定”按钮,就可以使用GetPathName()函数获取用户选择的文件名和路径。然后就可以根据需要进行文件的读取或者写入操作了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉尼拔勇闯天涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值