((CEditView*)m_viewList.GetHead())->SetWindowText(NULL);??
近日编程时忽然发现了一个问题,不明白:
在classwizard产生的sdi代码中,OnNewDocument()中有这样一行:
((CEditView*)m_viewList.GetHead())->SetWindowText(NULL);
我不太明白这个m_viewList是个是么东西,好像没有申明过,若改名则会出现错误:未申明的变量。
还有GetHead()返回值实什么。
请解释,谢谢。
问题点数:50、回复次数:6Top
1 楼softsprite(软件精灵)回复于 2000-09-09 22:41:00 得分 0
看上去象是存放CEditView的列表类(CList),取出列表头部的EditView,设置标题为空。
不过,你是做了什么操作才自动加上这一段代码的?Top
2 楼famugong(伐木工)回复于 2000-09-24 08:53:00 得分 0
只是在view继承了editview之后,就有这行代码了.Top
3 楼FireAngel(土豆)回复于 2000-09-24 18:40:00 得分 0
MFC内部的这些视图不是需要一个数据结构来存放吗?这就是了,程序可以通过这个结构来管理和遍历所有的视图。建议诸位多多去读读源代码,会有很多收获的。Top
4 楼lgs(老臭虫)回复于 2000-09-24 21:00:00 得分 50
m_viewList是文档里面存放所有视图对象的列表,CPtrList m_viewList,是在文档的基类CDocument里面定义的。
调用GetHead()后返回第一个视图的指针,因为一个文档可以拥有许多个视图,可以用m_viewList.GetCount()返回文档对应视图的个数,m_viewList.GetHeadPosition() m_viewList.GetNext()等函数遍历文档的所有视图,你可以看看MFC源代码。Top
5 楼BenjaminNing(大漠孤烟)回复于 2000-09-25 08:29:00 得分 0
希望你好好研究一下VC++ 的 document - view 的体系结构,
每个 Document 可以对应多个 view;
m_viewList 是 CDocument 的一个成员变量, 存储它所对应的 views;
Top
6 楼CoolHg(苦听)回复于 2000-09-25 13:23:00 得分 0
继承的问题 用this->动态看看Top




