请问打开对话框后,上面的listctrl控件要显示出document中的一些数据。
是因该这样
(1)CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_LIST);
直接通过pList操作。(2)还是为IDC_LIST加一个对话框的CListCtrl成员变量m_List,通过对m_List操作,然后用DoDataExchange反映到IDC_LIST上?如果是(2),具体改如何做?我是新人,望大家指教。

解决方案 »

  1.   

    如果是(2),在资源编辑器里右击控件选“建立类向导”,选择第二个选项卡,为IDC_LIST的控件添加变量,注意Category选Control
    如果要频繁的操作控件的话使用(2),偶尔使用一下的话用(1)比较好
      

  2.   

    to ukyoking:
      对于如何添加针对IDC_LIST的成员变量我还是知道的,我想问的是:如果用方式(2),对m_List的操作如何反应到控件IDC_LIST上去?要自己写DoDataExchange函数么?例如:
    我在程序开始的时候就从document里面取出所有数据insert到m_List,但是DoModal()显示出的IDC_LIST上并没有这些数据。然而对话框中一个按钮的代码中修改了m_List,却马上显示再IDC_LIST上了。
    能够给我讲讲m_List和IDC_LIST之间如何相互作用的么?
      

  3.   

    能具体说说怎么通过m_List操作IDC_LIST么?
      

  4.   

    其实我个人认为(1)和(2)都是可以的。
    (1)是在代码运行过程中取得listctrl对象并进行操作通过代码:
    CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_LIST);
    (2)是在classwizzard中把IDC_LIST直接生成m_list类似的对象。
    当生成之后两者的功能是一致的。
    你之所以不成功可能是你在对pList进行操作之后,系统有调用了
    对于m_list操作的动作。覆盖了你一开始的操作。
    操作方式上一般总是先insertcolumn后insertitem
      

  5.   

    1。m_list->.....
    2.m_list......