首先建立两个子对话框类:CPage1,和CPage2;在主对话框类CDlgMy中声明三个变量:
CPage2 m_page2;
CPage1 m_page1;
CPropertySheet m_sheet;在主对话框类CDlgMy的初始化函数中加入如下代码:
m_sheet.AddPage(&m_page1);
m_sheet.AddPage(&m_page2);
m_sheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT);主对话框运行的时候,就会显示一个包含两页的属性页。子对话框类CPage1当中添加了一个按钮,响应函数如下:
void CPage1::OnButton1() 
{
// TODO: Add your control notification handler code here
MessageBox("Hello!");
}
程序运行时,点击属性页第一页的Button1按钮,会弹出一个对话框说“Hello!”现在,我想在点击这个Button1按钮的时候,改变主对话框类CDlgMy上的按钮IDOK 的显示。请问,该如何实现?

解决方案 »

  1.   

    将CDlgMy的指针赋给CPage1的成员变量CDlgMy* m_pDlgMy;通过m_pDlgMy操作IDOK的显示m_pDlgMy->SetDlgItemText(IDOK,"china");
      

  2.   

    谢谢!那怎么样才能把主对话框的指针赋给CPage1的成员变量m_pDlgMy呢?我在CPage1类的头文件里面包含了主对话框类CDlgMy的头文件,
    然后在CPage1类当中定义了一个公共变量:CDlgMy *m_pDlgMy;
    结果出来很多编译错误。我这样做是不是造成了头文件相互包含所以才引起错误呢?请指点!