我定义了一个属性单,class CMyPropertySheet : public CPropertySheet,即写了一个继承于CPropertySheet的类,里面添加了几个对话框,都是继承于CPropertyPage类,每个对话框里都有一些控件用于设置一些信息,我的问题是,当我点击属性单的确定按钮时,怎么保存所有属性页的数据????  谁知道的告诉我啊,急急急急急·····

解决方案 »

  1.   

    部分代码如下:当我点击某个按钮时,出发以下函数; void HT_Setting()
    {
    CAcModuleResourceOverride resOverride;
    CMyPropertySheet myps(_T("选项"), acedGetAcadFrame(),0);
    myps.m_psh.dwFlags|=PSH_NOAPPLYNOW;
    myps.m_psh.dwFlags&=~PSH_HASHELP; CDlgSetSys  m_pgeSys;
    CDlgMapSet m_Map;
    CDlgSetMap  m_pgeMap;
    CDlgSetFTPrt m_pgeFt;
    m_pgeMap.m_psp.dwFlags&=~PSP_HASHELP;
    m_pgeSys.m_psp.dwFlags&=~PSP_HASHELP;
    m_pgeFt.m_psp.dwFlags&=~PSP_HASHELP;
    m_Map.m_psp.dwFlags&=~PSP_HASHELP;
    myps.AddPage(&m_pgeSys);
    myps.AddPage(&m_pgeMap);
    myps.AddPage(&m_pgeFt);
    myps.AddPage(&m_Map);
    myps.AddIcon(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_GLOBAL)));
    myps.AddIcon(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ADDITION)));
    if (myps.DoModal()!=IDOK) return ;
     UpdateWindow(FALSE);   
    }当我点击属性单的确定按钮时,触发以下函数: void CMyPropertySheet::OnOK()
    {
              CDlgSetSys::GetInstance().OnButSave();
    CDlgMapSet::GetInstance().OnOK();
    CDlgSetMap::GetInstance().OnButSave();
    CDlgSetFTPrt::GetInstance().OnButSave();
       CMyPropertySheet::OnClose();
    }我的想法是当某个页面的数据改变了,就调用那个页面的保存函数,保存数据,但不知怎么实现???
      

  2.   

    配置窗体DoModal销毁后,该窗体上的参数下次启动时会是一个初始值。
    要保存窗体销毁时的参数并在下次init的时候重新对窗体进行赋值。
    一般情况下保存配置文件,写注册表,或在程序中使用全局变量保存窗体上的参数都是可以的。如果要让程序退出后下次运行还能记忆你的设置,还是更推荐使用配置文件。
      

  3.   

    ini 文件保存配置属性。。