Hi,
我的CPropertSheet中包括三个页,我想在其中的一个页中访问另一个页中的数据,请问如何访问?
谢谢。robter_X
我的CPropertSheet中包括三个页,我想在其中的一个页中访问另一个页中的数据,请问如何访问?
谢谢。robter_X
解决方案 »
- keyboardproc做了一个全局钩子,同时,该dll导出一全局变量,在主调程序中只能得到该全局变量的初始值?
- 对话框创建后自动运行非模态对话框
- 不的ListCtrl不接收创建消息的????
- 紧急求救:一个关于数据显示和打印的问题?
- 为什么:视窗移动会占用大量线程时间
- 求推荐数据库编程书?(最好是 SDK 或 MFC 的)
- mfc设计学生信息输入对话框
- Win 2k/NT 下线程间的相互影响
- 求大牛解决: Debug Assertion Failed! Program:... File: f:\dd\vctools\vc7libs\ship\atl
- 谁有《Windows网络编程技术》的附书源码?
- 请问:关于双缓冲画图 [在线结贴]
- 求救 ADO+ACCESS
void fun1(
CMyPropertySheet prjset("项目设置");
CPage1 page1;
CPage1 page2;
CPage2 page3;
prjset.DoModal();
}
我想在page2中的OnInitDialog()函数中访问page1中的某一个设置,如何访问?
//Page1.cpp
CPage2 *pPage2;
pPage2 = (CPage2*)((CPropertySheet*)GetParent())->GetPage(1);
pPage2->SetDlgItemText(IDC_PAGE2_EDIT1, "hello");
可通过该指针再得到页面指针。
假设父对话框为CFatherDlg;
子对话框为CSonDlg,其为CFatherDlg的成员变量;
在CFatherDlg中的变量有:
public:
int m_nValue;
CSonDlg m_SonDlg;在CSonDlg中的变量有:
public:
int m_nValue;
CButton m_btnTansfer;//传递m_nValue到父对话框的m_nValue;为按钮m_btnTansfer添加消息响应函数:
void CSonDlg::OnButtonTransfer()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);//根据需要,是否有需要更新的控件变量
m_nValue=100;//如果m_nValue不是控件变量;
((CFatherDlg*)(CDialog*)GetParent())->m_nValue=m_nValue;
//注意这里要强制转换两次!!!//1:还可以利用这个方法直接给CFatherDlg中的控件赋值
//((CFatherDlg*)(CDialog*)GetParent())->SetDlgItemInt(IDC_EDIT_VALUE,m_nValue);
//2:直接从父对话框中获得变量,传到子对话框
//((CFatherDlg*)(CDialog*)GetParent())->GetDlgItem(IDC_EDIT_VALUE)->GetWindowText(m_strValue);m_strValue是CSonDlg的成员变量;可以直接看到变化;
//m_nYear=((CFatherDlg*)(CDialog*)GetParent())->m_nValue
}
这样就可以在子对话框不消失的情况下相互传递变量了。