如何设置在切分窗口中加入一个CTabCtrl标签页,使该控件随分割条的移动改变大小?

时间:2022-06-16 03:47:13
我打算在一个切分窗口中放入一个占满整个切分窗口的CTabCtrl控件,然后在各页中加入ClistCtrl控件.
我的做法:
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMytableview),CSize(rect.Width()/2,rect.Height()),pContext);
其中,CMytableview基于CFormViewr;
然后我向CMytableview的对话框中添加了一个CTabCtrl(关联变量m_tab),并在CMytableview::OnInitialUpdate()中加入
CRect rs;
this->GetClientRect(rs);
m_tab.MoveWindow(rs);
但是执行出来后CMytableview的对话框大小并没有适应切分窗口的大小,请问我该怎么做?
还有在CMytableview::OnSize(UINT nType, int cx, int cy)中又该如何写?

9 个解决方案

#1


msdn.microsoft.com/msdnmag/issues/0600/Wicked/

#2


可以在一个子窗口中放一个Cdialog,Cdialog上再放一个CTabCtrl

或者把CTabCtrl放在一个ToolBar里,很多方法的.

另外
CRect rs;
this->GetClientRect(rs);
m_tab.MoveWindow(rs);  // 这句一般需要加上个 if( m_tab.GetSafeHwnd() )
放到OnSize里试试呢.

#3


to: eplanet(小汽车)
我用的方法和你的差不多,不行啊.关键是在切分窗口里放入对话框后,对话框的大小不容易随着切分窗口的大小改变.

jiangsheng(蒋晟.Net[MVP]) 的方法也许可以,尝试中……

#4


CRect rs;
this->GetClientRect(rs);
m_tab.MoveWindow(rs);  // 这句一般需要加上个 if( m_tab.GetSafeHwnd() )
放到OnSize里试试呢.
嗯,要放到OnSize里,先判断控件句柄是否存在.

#5


这是因为你的对话框是基于CTabCtrl的,你要在CTabCtrl的OnSize里做同样的工作.

#6


切分窗口变化时,通过MoveWindow对窗口对话框的大小进行调整

#7


TO:raymonzhao(Raymon)
你理解错了,我是在对话框里放入CTabCtrl控件,而不是说在CTabCtrl的各页加入对话框。
我是要对话框和CTabCtrl控件二者都能随切分窗口的大小变化而变化。

#8


你把视图弄成CFORMVIEW,再拖一个CTABCTRL进去,在onsize里处理后不可以吗?

对话框的大小不容易随着切分窗口的大小改变.
-----------------------------------------

视图的onsize消息会随着分割条的位置改变而改变的啊.

#9


多谢了。是我没弄好。
结贴。

#1


msdn.microsoft.com/msdnmag/issues/0600/Wicked/

#2


可以在一个子窗口中放一个Cdialog,Cdialog上再放一个CTabCtrl

或者把CTabCtrl放在一个ToolBar里,很多方法的.

另外
CRect rs;
this->GetClientRect(rs);
m_tab.MoveWindow(rs);  // 这句一般需要加上个 if( m_tab.GetSafeHwnd() )
放到OnSize里试试呢.

#3


to: eplanet(小汽车)
我用的方法和你的差不多,不行啊.关键是在切分窗口里放入对话框后,对话框的大小不容易随着切分窗口的大小改变.

jiangsheng(蒋晟.Net[MVP]) 的方法也许可以,尝试中……

#4


CRect rs;
this->GetClientRect(rs);
m_tab.MoveWindow(rs);  // 这句一般需要加上个 if( m_tab.GetSafeHwnd() )
放到OnSize里试试呢.
嗯,要放到OnSize里,先判断控件句柄是否存在.

#5


这是因为你的对话框是基于CTabCtrl的,你要在CTabCtrl的OnSize里做同样的工作.

#6


切分窗口变化时,通过MoveWindow对窗口对话框的大小进行调整

#7


TO:raymonzhao(Raymon)
你理解错了,我是在对话框里放入CTabCtrl控件,而不是说在CTabCtrl的各页加入对话框。
我是要对话框和CTabCtrl控件二者都能随切分窗口的大小变化而变化。

#8


你把视图弄成CFORMVIEW,再拖一个CTABCTRL进去,在onsize里处理后不可以吗?

对话框的大小不容易随着切分窗口的大小改变.
-----------------------------------------

视图的onsize消息会随着分割条的位置改变而改变的啊.

#9


多谢了。是我没弄好。
结贴。