SetActiveView的参数怎么填?
我在mainfram里面重载void CMainFrame::OnEnterIdle(UINT nWhy, CWnd* pWho) 方法,目的是在做了一系列操作后把其中的一个view设成active,一共有3个view,静态分屏实现的,CDrawTreeView是第三个被加载的
怎么办?
第一个参数怎么填(下面这种是错的,不能用identifier做参数)
SetActiveView( &CDrawTreeView, TRUE );
问题点数:100、回复次数:7Top
1 楼yarshray(saga jion(心飘情落))回复于 2002-10-10 23:22:57 得分 10
摘自MSDN
void SetActiveView( CView* pViewNew, BOOL bNotify = TRUE );
所以应该是SetActiveView( *CDrawTreeView, TRUE );
Top
2 楼small_wei(small)回复于 2002-10-10 23:26:17 得分 85
CDocument* p = GetActiveDocument;
POSITION pos = p->GetFirstViewPosition();
CView* pView;
while (pos != NULL) //取最后一个
{
pView = p->GetNextView(pos);
}
SetActiveView( pView, TRUE );Top
3 楼wyongh(菜鸟正在飞,结贴非常快)回复于 2002-10-10 23:28:13 得分 0
这是你说的那样设出的错误
error C2275: 'CDrawTreeView' : illegal use of this type as an expression
d:\程序\zwddrawtree\zwddrawtreeview.h(13) : see declaration of 'CDrawTreeView'Top
4 楼wyongh(菜鸟正在飞,结贴非常快)回复于 2002-10-10 23:34:37 得分 0
谢谢small_wei兄
编译没问题,就是没效果
程序一运行,按钮即可用了(这是改进之处,也是这样做收到的效果),但是一点击其它视,问题依旧,按钮是灰的
要做到按钮随时可用,怎么做呢?应该在哪儿做SetActiveView( pView, TRUE );??Top
5 楼wyongh(菜鸟正在飞,结贴非常快)回复于 2002-10-10 23:35:52 得分 0
哦,错了,就是没效果,一点没有Top
6 楼small_wei(small)回复于 2002-10-10 23:51:01 得分 5
你的图意是什么??Top
7 楼wyongh(菜鸟正在飞,结贴非常快)回复于 2002-10-11 08:52:37 得分 0
要做到按钮随时可用
toolbar上的两个按钮只在一个视中有响应函数,当该视是active时(鼠标点它),那两个按钮才可用,点击其它视后,按钮就灰了
我想让这两个按钮一直可用(一个是打印当前图,一个是打印文件)Top




