新手关于listctrl控件的问题。
请问打开对话框后,上面的listctrl控件要显示出document中的一些数据。
是因该这样
(1)CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_LIST);
直接通过pList操作。
(2)还是为IDC_LIST加一个对话框的CListCtrl成员变量m_List,通过对m_List操作,然后用DoDataExchange反映到IDC_LIST上?
如果是(2),具体改如何做?我是新人,望大家指教。
问题点数:20、回复次数:9Top
1 楼ukyoking(累)回复于 2002-12-04 03:35:06 得分 10
如果是(2),在资源编辑器里右击控件选“建立类向导”,选择第二个选项卡,为IDC_LIST的控件添加变量,注意Category选Control
如果要频繁的操作控件的话使用(2),偶尔使用一下的话用(1)比较好Top
2 楼zhou80bin(彬彬)回复于 2002-12-04 08:10:53 得分 0
同意
Top
3 楼allen_wang(IA32 architecture)回复于 2002-12-04 12:46:54 得分 0
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之间如何相互作用的么?Top
4 楼hhuangchunlin(林之韵)回复于 2002-12-04 12:56:36 得分 0
用2比较方便Top
5 楼allen_wang(IA32 architecture)回复于 2002-12-04 14:52:59 得分 0
能具体说说怎么通过m_List操作IDC_LIST么?Top
6 楼binlinshan(彬林杉)回复于 2002-12-04 15:25:45 得分 10
其实我个人认为(1)和(2)都是可以的。
(1)是在代码运行过程中取得listctrl对象并进行操作通过代码:
CListCtrl *pList=(CListCtrl *)GetDlgItem(IDC_LIST);
(2)是在classwizzard中把IDC_LIST直接生成m_list类似的对象。
当生成之后两者的功能是一致的。
你之所以不成功可能是你在对pList进行操作之后,系统有调用了
对于m_list操作的动作。覆盖了你一开始的操作。
操作方式上一般总是先insertcolumn后insertitemTop
7 楼andy_lau(天行键,君子当自强不息!)回复于 2002-12-04 15:52:38 得分 0
都是可以的,没什么区别(个人认为)Top
8 楼andy_lau(天行键,君子当自强不息!)回复于 2002-12-04 15:54:18 得分 0
1。m_list->.....
2.m_list......Top
9 楼allen_wang(IA32 architecture)回复于 2002-12-05 00:42:30 得分 0
虽然对于方式(2)还是不太懂,不过发现(1)挺好用的,先将就一下吧,以后慢慢研究,散分!Top




