我做的是类似outlook的三叉分窗口
---------
| | |
| | |
| |-----|
| | |
| | |
----------
左边是派生自CTreeView,右边上侧是派生自CListView下侧是派生自CView.我的问题是我怎么样才可以在不影响树形控件和列表控件的情况下在视图内画一些
装饰性的矩形(带说明性的文字,具体参看一下Outlook express)
我在派生自CView的视图的ondraw()中可以画装饰矩形,但为什么在CListView和CTreeView的ondraw()就不可以呢还有我不太明白怎么将派生自CTreeView和CListView的视图与我的文档联系起来呢?我把wizzard生成的派生自CView的类中联系文档的语句都照样搬过去,可是编译总是出错。再有,我如何才能获取活动视图呢?(活动视图的真正意义是什么呢?)
---------
| | |
| | |
| |-----|
| | |
| | |
----------
左边是派生自CTreeView,右边上侧是派生自CListView下侧是派生自CView.我的问题是我怎么样才可以在不影响树形控件和列表控件的情况下在视图内画一些
装饰性的矩形(带说明性的文字,具体参看一下Outlook express)
我在派生自CView的视图的ondraw()中可以画装饰矩形,但为什么在CListView和CTreeView的ondraw()就不可以呢还有我不太明白怎么将派生自CTreeView和CListView的视图与我的文档联系起来呢?我把wizzard生成的派生自CView的类中联系文档的语句都照样搬过去,可是编译总是出错。再有,我如何才能获取活动视图呢?(活动视图的真正意义是什么呢?)
CMyView *pView=pFWnd->GetActivateView();
pView->GetDocument();
要改很多东西的,包括在必要的时候#include 文件,和改动相关构造函数为public
建议新建一个试试。
祝你好运。
>装饰性的矩形(带说明性的文字,具体参看一下Outlook express)从网上下载CJ609LIB,有源码和例子
>还有我不太明白怎么将派生自CTreeView和CListView的视图与我的文档联系起来呢?我把>wizzard生成的派生自CView的类中联系文档的语句都照样搬过去,可是编译总是出错。因为没有给出错误提示,试试在视类的头文件中加入class C..Doc;>再有,我如何才能获取活动视图呢?(活动视图的真正意义是什么呢?)活动视图用眼睛看不出来,简单说就是键盘的输入焦点,
但是我照搬这几行语句.h文件中的:
1:CEMailDoc* GetDocument();
2:#ifndef _DEBUG
inline CEMailDoc* CTitleView::GetDocument()
{ return (CEMailDoc*)m_pDocument; }
#endif.cpp中的都改为将CDocument都改为了CEmailDoc得到以下错误:error C2143: syntax error : missing ';' before '*'
error C2501: 'CEMailDoc' : missing storage-class or type specifiers
error C2501: 'GetDocument' : missing storage-class or type specifiers请大虾在指导一下阿
CDocument* GetDocument();而appwizzard生成的视图CView(右下的那个视图)里是这样定义的
CEMailDoc* GetDocument();这样我的派生自CTreeView和CListView的视图岂不是得不到文档了么,我就照搬了appwizzard的定义及上面我写的代码,得到了上面的错误。怎么回事呢????
(CXXXDoc*)GetDocument()得到你的视图指针只要是视图文档结构,这样都可以得到
小弟真是佩服之至,还想请问一个问题:
我在派生自CView的视图的ondraw()中可以画装饰矩形,但为什么在CListView和CTreeView的ondraw()就不可以呢,好像程序根本就不调用这两个数图的OnDraw()函数阿,这是怎么回事呢?我想在初始和重绘时画的修饰矩形是随着试图的变化而变化的应该不应该在OnDraw()中来做呢??
万分感谢!!1
是在OnDraw中做,做完后别忘UpdateAllView()或Invlaidate()一下
不知道怎么回事,是不是他们不是活动视图的原因阿??
谢谢了!!
但是会调用OnPaint。
如果要画装饰矩形,我的意见是直接从CView中派生自己的类,
然后矩形,ListCtrl等等都作为视窗的子窗口出现,在OnCreate函数中创建这些子窗口,在OnSize函数中放置这些子窗口的位置。在www.codeguru.com中有具体的代码