我的程序在ProppertySheet里有两个PropertyPage,我在PropertyPage1的PropertyPage函数里向ListCtrl写了东西然后选择,然后切换到PropertyPage2中将在PropertyPage1中选择的内容显示出来,现在想切换到PropertyPage1中,然后继续选择PropertyPage1的ListCtrl中的内容然后在在PropertyPage2中显示,请问如何实现切换后还能能够实现这种功能,是要在ONDRAW()中写吗?谢了咯

解决方案 »

  1.   

    PropertyPage1中建立PropertyPage2的指针变量在ProppertySheet中进行赋值即可进行控制
      

  2.   

    在PropertyPage1页面中ListCtrl单击函数里面你可以这样做:#include "PropertyPage2.h"CPropertySheet* sheet = (CPropertySheet*) GetParent(); 
    PropertyPage2* page = (PropertyPage2*) sheet->GetPage(1); //page 为PropertyPage2的指针int row=m_list.GetSelectionMark (); //这样可以获取你点击的那一行 
    CString item=m_lista.GetItemText(row,col);//这样可以获取你想要的单元格,col为第几列//在这里假设你把ListCtr中选中的内容显示在PropertyPage2中的编辑框中,则可以这样
    page->m_edit.SetWindowText(item);// m_edit为PropertyPage2中编辑框的控制变量,
      

  3.   

    我第一次选择完PAGE1中的内容,然后切换到PAGE2可以正常显示,可是第二次在PAGE1中选择的东西就PAGE2中就无法显示了,我的显示是在PAGE2中的OnInitDialog()中完成的,我把第一次选择的东西都放在一个CStringArray中,然后在PAGE2中读取CStringArray中的内容
      

  4.   


    我第一次选择完PAGE1中的内容,然后切换到PAGE2可以正常显示,
    =============================
    因为这时候PAGE2才开始初始化。会执行PAGE2中的OnInitDialog()
    但当你第二次在PAGE1中选择的东西的时候,,切换到PAGE2时,因为初始化工作已经完成,就不会再调用PAGE2中的OnInitDialog()函数来,OnInitDialog()函数在初始化对话框时只执行一次。所以你第二次在PAGE1中选择的东西就PAGE2中就无法显示了。我上面也说,叫你在
    在PropertyPage1页面中ListCtrl单击函数里面做: 
      

  5.   

    还想请问下 ZQL886 我用你的方法可以了 不还有我在显示PAGE2时需要初始化 所以我在PropertySheet 的OnInitDialog()调用SetActivePage(),但是不知道为什么 加了这个后一运行程序就自动结束了代码如下 我的属性表是用单击按钮后DoModal生成的
    BOOL PropSheet::OnInitDialog()
    {
    CPropertySheet::OnInitDialog(); SetActivePage(2);
    SetActivePage(1);
    SetActivePage(0);
      
    return TRUE;
    }