- 积分
- 643
- 帖子
- 347
- 主题
- 33
- 精华
- 2
- 最后登录
- 2020-8-1
- 在线时间
- 287 小时
中级会员
兴趣点(最多三项):
VegaPrime
Openscenegraph
军事仿真
- 私信
|
发表时间 : 2010-1-14 22:08:07
|
浏览 : 1102 评论 : 7
我想实现如下图通道切换:
d:\ee\main.jpg
这是三个通道的初始状态
d:\ee\1.jpg
d:\ee\2.jpg
d:\ee\3.jpg
d:\ee\4.jpg
有一个按钮响应事件代码如下
- int Chanmode=0;//全局变量
- void CMFCView::OnViewBottombar()
- {
- if (Chanmode==0)
- {
- m_nearchan->setDrawArea(0,1,0,1);
- m_Farchan->setDrawArea(0,0,0,0);
- m_Freechan->setDrawArea(0.65,1,0,0.5);
- Chanmode=1;
- return;
- }
- if (Chanmode==1)
- {
- m_nearchan->setDrawArea(0,1,0,1);
- m_Farchan->setDrawArea(0,0,0,0);
- m_Freechan->setDrawArea(0,0,0,0);
- Chanmode =2;
- return;
- }/**/
- if (Chanmode==2)
- {
- m_nearchan->setDrawArea(0,0,0,0);
- m_Farchan->setDrawArea(0,1,0,1);
- m_Freechan->setDrawArea(0,0,0,0);
- Chanmode =3;
- TRACE("Chanmode=%d\n",Chanmode);
- return;
- }/**/
- if (Chanmode==3)
- {
- m_nearchan->setDrawArea(0,0,0,0);
- m_Farchan->setDrawArea(0,0,0,0);
- m_Freechan->setDrawArea(0,1,0,1);
- Chanmode =4;
- return;
- }/**/
- [b][color=Red] if (Chanmode==4)
- {
-
- m_Farchan->setDrawArea(0,0,0,0);
-
- m_nearchan->setDrawArea(0.65,1,0,0.5);
- m_Freechan->setDrawArea(0,.9,0,.9);
- double l,r,b,t;
- m_nearchan->getDrawArea(&l,&r,&b,&t);
- TRACE("Chanmode=%f %f %f %f \n",l,r,b,t);
- Chanmode =5;
- return;
- }/**/[/color][/b]
- if (Chanmode==5)
- {
- m_nearchan->setDrawArea(0,1,0,1);//(0.65,1,0.65,1)
- m_Farchan->setDrawArea(0.65,1,0.65,1);
- m_Freechan->setDrawArea(0.65,1,0,0.5);
- Chanmode =0;
- TRACE("Chanmode=%d\n",Chanmode);
- return;
- }/**/
- }
复制代码 结果上面标红的代码,也就是Chanmode =5这种情况,老是出现和Chanmode =4一样的布局情况,也就是1号通道不能出现在3号通道满屏的右下角(通过测试缩小的1号通道藏在3号通道下面,也就是说被3号通道盖住了)。
其他切换布局很正常。请问大侠出现这种问题怎么回事?我找了好久不知道问题在那?难道这些通道还有优先级吗? |
|