CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

****向各位高手求救:如何在对话框A中,为对话框B中的控件List control添加内容****

楼主QBHAPPY(水落无声)2005-04-21 09:33:34 在 VC/MFC / 基础类 提问

我想实现的功能:在对话框A中,当点击按钮Btn1,为对话框B中的CListCtrl来添加内容,我写的代码如下:我用的是SetItemText函数.该程序可以编译通过,并且二维数组也传递过去了,可是数据并不能在列表框显示出来,请问如何才能让它显示出来?  
   
  void   m_dialag_A::OnBtn1()    
  {          
          m_dialog_B     *pdlglist;   //在对话框A中,声明并定义对话框B的指针对象pdlglist  
   
          pdlglist=   new   m_dialog_B;                         //创建对话框B指针对象  
          pdlglist->Create(IDD_DIALOG_B,this);   //创建对话框B  
          pdlglist->m_list_tide.DeleteAllItems();//m_list.tide是对话框B的列表控件对象    
          CString   mylist;  
          int i;  
          for   (   i=0;i<7;i++)  
          {  
          for   (   int   ihour=0;ihour<24;ihour++)  
  {  
          mylist.Format(_T("%5d"),list[i][ihour]);//利用mylist调整输出格式,对齐  
          pdlglist->m_list_tide.SetItemText(ihour,i,mylist)//显示数组  
                      }  
            }  
          pdlglist->UpdateData(false);    
  }  
  该函数能执行,但没有显示  
  ...................................  
  另外,我在对话框B中添加了一个按钮Button1,点击它显示列表控件,完成显示功能.是不是在对话框A中创建的B窗体就象个"局部变量"无法保留呢?当B窗体真正创建以后,又得重绘.有没有办法能在对话框A中实现窗体B的列表显示功能呢?  
   
  我在对话框B中添加的Button1响应函数如下:    
  void   m_dialog_B::OnButton1()    
  {  
          CString   mylist;  
          int i;  
          for   (   i=0;i<7;i++)  
          {  
          for   (   int   ihour=0;ihour<24;ihour++)  
  {  
          mylist.Format(_T("%5d"),list[i][ihour]);//利用mylist调整输出格式,对齐      
                              m_list_tide.SetItemText(ihour,i,mylist)//显示数组  
                      }  
            }  
          UpdateData(false);    
  }  
  问题点数:50、回复次数:10Top

1 楼QBHAPPY(水落无声)回复于 2005-04-21 17:22:48 得分 0

没人回,自己UP  
  Top

2 楼dfyang()回复于 2005-04-21 17:30:47 得分 0

void   m_dialag_A::OnBtn1()    
  {          
          m_dialog_B     *pdlglist;   //在对话框A中,声明并定义对话框B的指针对象pdlglist  
   
          pdlglist=   new   m_dialog_B;                         //创建对话框B指针对象  
          pdlglist->Create(IDD_DIALOG_B,this);   //创建对话框B\  
  pdlglist->ShowWindow(SW_SHOW);  
          pdlglist->m_list_tide.DeleteAllItems();//m_list.tide是对话框B的列表控件对象    
          CString   mylist;  
          int i;  
          for   (   i=0;i<7;i++)  
          {  
          for   (   int   ihour=0;ihour<24;ihour++)  
  {  
          mylist.Format(_T("%5d"),list[i][ihour]);//利用mylist调整输出格式,对齐  
          pdlglist->m_list_tide.SetItemText(ihour,i,mylist)//显示数组  
                      }  
            }  
          pdlglist->UpdateData(false);    
  }  
  Top

3 楼widewind(野风)回复于 2005-04-21 17:32:32 得分 10

要先InsertItem   然后再SetItemTextTop

4 楼QBHAPPY(水落无声)回复于 2005-04-21 19:44:51 得分 0

不必一定先InsertItem.直接SetItemText应该也可以的.这个好象不是主要原因,是否是窗体的重绘?我是新手,大家多帮忙  
  Top

5 楼42252343(大跃进的猪)回复于 2005-04-21 19:54:58 得分 10

对   要InsertItem   还要加一个扩展样式Top

6 楼Mackz(在相互)回复于 2005-04-21 20:07:50 得分 20

“不必一定先InsertItem.直接SetItemText应该也可以的”  
   
  谁告诉你的?好好看看ListControl的用法。Top

7 楼QBHAPPY(水落无声)回复于 2005-04-21 21:10:06 得分 0

感谢大家的回复!!  
  to   大跃进的猪,你所指的扩展形式是什么呢?  
  to   在相互,的确可以的,我在对话框B中添加的Button1响应函数就没有用insertitem.它可以正常显示的,只是把相同的代码放在对话框A中就不可以了,我想问题应该不是出在InsertItem这句里的.  
  Top

8 楼howtotell(从何谈起)回复于 2005-04-21 21:19:44 得分 10

支持Mackz(在相互)的看法。Top

9 楼QBHAPPY(水落无声)回复于 2005-04-22 10:04:44 得分 0

是我的问题,的确需要有InsertItem,我是在对话框B初始化的时候加的横栏和纵栏.在按钮响应函数处就没有添加,因此有问题.如下:  
  BOOL   m_dialog_B::OnInitDialog()    
  {  
          CDialog::OnInitDialog();  
   
          CString   theday,thehour,list11;  
          int   m=0,n=0,l=0,j=0;  
          m_list_tide.InsertColumn(0,"时间",LVCFMT_LEFT,70,0);  
          for(int   i=0;i<24;i++)//小时栏  
          {  
      thehour.Format(_T("%d"),i);  
  m=m_list_tide.InsertItem(i,thehour);  
          }  
          for   (   i=0;i<7;i++)///横栏:某日的潮位  
          {  
  theday.Format(_T("%d"),i);  
  m_list_tide.InsertColumn(i+1,theday+"日潮位",LVCFMT_LEFT,70,0);  
          }  
            return   TRUE;    
  }  
  现在这个问题我知道了,可是即使我在程序中改动了也不行啊.还是不能用对话框A控制对话框B列表框的绘制,目前对话框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);  
  }  
   
  Top

10 楼QBHAPPY(水落无声)回复于 2005-04-22 20:11:47 得分 0

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

相关问题

  • ****向各位高手求救:如何在对话框A中,为对话框B中的控件List control添加内容****
  • ****向各位高手求救:如何在对话框A中,为对话框B中的控件List control添加内容****
  • *********对话框控件**********
  • 求助,由A对话框向B对话框的日期控件传送日期显示的问题!
  • 关于对话框控件的问题?
  • 如何显示控件对话框?
  • 关于对话框控件的问题:(
  • 对话框中的控件问题
  • 对话框的控件的问题
  • VC对话框中的控件就急!!!

关键词

  • 函数
  • 控件
  • 对话框
  • pdlglist
  • tide
  • 窗体
  • 添加
  • setitemtext
  • insertitem
  • 列表

得分解答快速导航

  • 帖主:QBHAPPY
  • widewind
  • 42252343
  • Mackz
  • howtotell

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo