我简要介绍一下我的程序:
1  程序使用了属性页,因此对话框A,B的属性都是child;
2. 程序目的是要利用对话框A的按钮,把一个全局数组list[7][24]的数据在对话框B的列表框显示出来.好象问题就出在使用窗体A控制刷新B窗体控件上了.
3. 我在对话框B中也用了按钮,代码与对话框A基本相同,能够实现显示数据的功能.
以下是对话框A的按钮函数,大家帮忙看看那有问题?
void m_dialog_A::OnButton1() 
{
// TODO: Add your control notification handler code here
CString list11;
m_dialog_B  *pdlglist;         //创建B指针对象
pdlglist= new m_dialog_list; 
    pdlglist->Create(IDD_DIALOG_B,this);//创建B窗体
    pdlglist->m_list_tide.DeleteAllItems();//m_list_tide是对话框2上的列表控件 
CString theday,thehour;
int j=0;
/////////////////////小时栏
    for(int i=0;i<24;i++)
     {
thehour.Format(_T("%2d"),i);
thehour=thehour+"时";
pdlglist->m_list_tide.InsertItem(i,thehour);
    }
//////////////////横栏:某日的潮位
    pdlglist->m_list_tide.InsertColumn(0,"时间",LVCFMT_LEFT,70,0); 
    for ( i=0;i<7;i++) 
    {
theday.Format(_T("%d"),i);
pdlglist->m_list_tide.InsertColumn(i+1,theday+"日数据",LVCFMT_LEFT,70,0);
    }
////////////////////添加数据    
    for (  i=0;i<7;i++)
    {
for ( int ihour=0;ihour<24;ihour++)
{
list11.Format(_T("%5d"),list[j][ihour]);//输出格式
pdlglist->m_list_tide.SetItemText(ihour,j+1,list11);
}
j++;
    }
    pdlglist->UpdateData(false);
}

解决方案 »

  1.   

    在Property Sheet的Property Page之间用PSM_QUERYSIBLINGS来交换数据
    http://blog.csdn.net/laiyiling/archive/2005/01/12/250473.aspx
      

  2.   

    谢谢sinall(),程序修改完毕,问题的关键好象就是pdlglist的定义上,不应该把它定义为一个函数的局部变量,而应该在m_list_A的构造函数处定义,如下:  
    class  m_dialog_address  :  public  CDialog  
    {  
    //  Construction  
    public:  
               m_dialog_list  *pdlglist;  
    .......................................  
    这样就可以用对话框A的按钮控制对话框B的正常显示了.呵呵,希望以后有我这个问题的朋友,不再棘手啊^_^