关于splitter的问题 我想对一个SDI静态切分成三部分。首先切分成上下两部分,然后再将下面的切分成左右两部分。请问在CMainFrame::OnCreateClient中的代码应该怎么写。还有就是我想问一下可不可以将一个dlg放入其中的一个框架中,如果可以怎么操作。谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在CMainFrame中定义protected: CSplitterWnd m_wndHSplitter, m_wndVSplitter;在BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext){ // create splitter window if (!m_wndHSplitter.CreateStatic(this, 2, 1)) return FALSE; m_wndHSplitter.SetRowInfo(0, 200, 0); //将下边划分为一行两列 if(m_wndVSplitter.CreateStatic(&m_wndHSplitter, 1,2, WS_CHILD|WS_VISIBLE, m_wndHSplitter.IdFromRowCol(1, 0)) == NULL) return FALSE; if( !m_wndHSplitter.CreateView(0, 0, RUNTIME_CLASS(CUpView), CSize(600, 200), pContext) || !m_wndVSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftDownView), CSize(300, 200), pContext)|| !m_wndVSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightDownView), CSize(300, 200), pContext)) { m_wndSplitter.DestroyWindow(); return FALSE; } return TRUE;} m_wndSplitter.DestroyWindow();把这一点改为 { m_wndHSplitter.DestroyWindow();//水平分割控件 m_wndVSplitter.DestroyWindow();//竖直分割控件 return FALSE; } 谢谢,楼上的高手。那可不可以将一个对话框放在其中的一个view里面呢? 可以,你只需要把这个VIEW从CFormView中继承过来即可,这样,在你的资源中你会看到该FormView的对话框 我建了一个对话框,然后从VFormView中派生了CFView。我把上面程序中的最后一个RUNTIME_CLASS()的参数改为了CFView,是这样做么?但不能运行。提示要我终止程序。 搞定了,呵呵。谢谢byry(pepsi)的帮助。最后一个问题怎么把帖子弄到“已解决”里面?我新手对论坛不熟,^_^。 我在继承自CFormView的对话框中的按钮写的函数怎么没有用啊。我写了一个MessageBox,可是点了没有任何反应。请高手指教。 CComboBox 单线程下,如何用WaitForSingleObject函数让程序暂停一段时间?附简要代码,大家请进! 我的VC学习路线 VC编辑筐无法清空,帮忙看看 请牛人介绍本VC结合XML的书 为什么不能直接生成CObject的派生类?? VC6中是否提供了这种工具栏按钮:象word工具条上的“字体颜色”。 怎么把二维数组作为参数传递? 请问怎样用一个循环控制10的n次方? 谁又能来说一下 <vector> 是什么用的? VB调用ATL写出的.DLL时,自动退出 ***** ActiveX控件在MSDN中没有帮助吗?*****
protected:
CSplitterWnd m_wndHSplitter, m_wndVSplitter;在BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
// create splitter window
if (!m_wndHSplitter.CreateStatic(this, 2, 1))
return FALSE; m_wndHSplitter.SetRowInfo(0, 200, 0);
//将下边划分为一行两列
if(m_wndVSplitter.CreateStatic(&m_wndHSplitter, 1,2, WS_CHILD|WS_VISIBLE, m_wndHSplitter.IdFromRowCol(1, 0)) == NULL)
return FALSE;
if( !m_wndHSplitter.CreateView(0, 0, RUNTIME_CLASS(CUpView), CSize(600, 200), pContext) ||
!m_wndVSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftDownView), CSize(300, 200), pContext)||
!m_wndVSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightDownView), CSize(300, 200), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
return TRUE;
}
m_wndHSplitter.DestroyWindow();//水平分割控件
m_wndVSplitter.DestroyWindow();//竖直分割控件
return FALSE;
}
那可不可以将一个对话框放在其中的一个view里面呢?
RUNTIME_CLASS()的参数改为了CFView,是这样做么?但不能运行。提示要我终止程序。