我在我的程序中如下创建了一个三行一列的分割窗体视图(都是从CScrollView派生),我希望最下面一个视图能固定大小,不能通过分割条改变大小,并且在我滚动鼠标滚轮时不滚动。 我该如何做呢?请大家赐教 m_splitter.CreateStatic( this, 3, 1 );
m_splitter.CreateView(0,0,RUNTIME_CLASS(CAINShowView),
Ainrc,pContext);
m_splitter.CreateView(1,0,RUNTIME_CLASS(CDINShowView),
Dinrc,pContext);
m_splitter.CreateView(2,0,RUNTIME_CLASS(CTimeShowView),
Timerc,pContext);
m_pAinView=(CAINShowView*)m_splitter.GetPane(0,0);
m_pDinView=(CDINShowView*)m_splitter.GetPane(1,0);
m_pTimeView=(CTimeShowView*)m_splitter.GetPane(2,0);
m_splitter.SetScrollStyle(WS_HSCROLL);//水平滚动,共用一个水平滚动条
RecalcLayout();
m_splitter.CreateView(0,0,RUNTIME_CLASS(CAINShowView),
Ainrc,pContext);
m_splitter.CreateView(1,0,RUNTIME_CLASS(CDINShowView),
Dinrc,pContext);
m_splitter.CreateView(2,0,RUNTIME_CLASS(CTimeShowView),
Timerc,pContext);
m_pAinView=(CAINShowView*)m_splitter.GetPane(0,0);
m_pDinView=(CDINShowView*)m_splitter.GetPane(1,0);
m_pTimeView=(CTimeShowView*)m_splitter.GetPane(2,0);
m_splitter.SetScrollStyle(WS_HSCROLL);//水平滚动,共用一个水平滚动条
RecalcLayout();
解决方案 »
- 如何把MFC做的一个程序转换成Activex控件
- (深情咸鱼)告别VC散分贴!在这个版块半年多谢各位gg,jj,dd,mm的大力支持!再次表示感谢。
- 倒卖专家分,卑鄙!
- 程序执行时候的内存?????
- 菜鸟的Access查询问题
- 怎么知道字体的宽度??送高分
- 请帮手:socket select为何无效?
- 替换Win2000的登陆验证机制,谁有好的建议?
- 不采用广播,对多个IP同时发送数据的问题
- 我的VS.NET为什么不能安装?我可是从CSDN买的正版呀!
- 关于CMSFlexGrid的用法
- CVTRES : fatal error CVT1100: duplicate resource-- type:VERSION, name:1, language:0x0409
static void DeferClientPos(AFX_SIZEPARENTPARAMS* lpLayout,
CWnd* pWnd, int x, int y, int cx, int cy, BOOL bScrollBar);
static void LayoutRowCol(CSplitterWnd::CRowColInfo* pInfoArray,
int nMax, int nSize, int nSizeSplitter);
上天入地,弄了很久,必须修改RecalLayout函数才行,具体的自己跟踪进去看。
首先感谢你的回复,我在该多文档子窗口中重载了该虚函数(RecalcLayout)可是我拖动分割条时,并没有进入到此函数中,我那边不对呢,我想将最低下(第三行)的窗口固定大小(用 m_splitter.SetRowInfo(2,40,40);好像不行),并不想跟随其它两个窗口一起滚动,请您具体讲一下好吗?
再次感谢!
并不能限制其不变大或变小。不变大或变小的思路是,在重新计算的时候,如果面板的大小不是我们想要的大小,就将其调整回来,不让它变。virtual void RecalcLayout();
继承这个,不进去,怎么可能~
你映射什么的有错误么?
然后再用普通的splitter在前面分好的splitter的上面一行里嵌套再建立一个两行一列的切分,即可
谢谢了
SetScrollSizes(MM_TEXT, CSize(0));