一个SDI View切分成2个小窗口(两行一列) 上面窗口又拆分成1行两列(类似VC工作区)这三个小窗口的关系为List窗口|工作区窗口
-------------------
输出窗口程序代码如下BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect rect;
GetClientRect(&rect);
if (!m_wndSplitter1.CreateStatic(this, 2, 1) ||
!m_wndSplitter1.CreateView(1,0, RUNTIME_CLASS
(COutPutView), CSize(rect.Width(),rect.Height()/5), pContext) ||
!m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE,
m_wndSplitter1.IdFromRowCol(0,0)) ||
!m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS
(CWorkSpaceView), CSize(rect.Width()/2,rect.Height()-rect.Height()/5), pContext) ||
!m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS
(CListFileView), CSize(rect.Width()/2,rect.Height()-rect.Height()/5), pContext))
{
return FALSE;
} return TRUE;
最后的运行结果是 底下的Output窗口占了整个界面大小,请问怎么回事,谢谢
-------------------
输出窗口程序代码如下BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect rect;
GetClientRect(&rect);
if (!m_wndSplitter1.CreateStatic(this, 2, 1) ||
!m_wndSplitter1.CreateView(1,0, RUNTIME_CLASS
(COutPutView), CSize(rect.Width(),rect.Height()/5), pContext) ||
!m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE,
m_wndSplitter1.IdFromRowCol(0,0)) ||
!m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS
(CWorkSpaceView), CSize(rect.Width()/2,rect.Height()-rect.Height()/5), pContext) ||
!m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS
(CListFileView), CSize(rect.Width()/2,rect.Height()-rect.Height()/5), pContext))
{
return FALSE;
} return TRUE;
最后的运行结果是 底下的Output窗口占了整个界面大小,请问怎么回事,谢谢
解决方案 »
- 关于CtrlTree设置单独Item颜色的问题
- 问题请教
- 怎样对指定IP段进行UDP查找
- -----------------问一个udp:如果收到UDP的包,是不是意味着收到的数据一定是对的? 有出处证明吗? --------------
- User Breakpoint called from code at XXX 错误,麻烦各位大虾帮忙看一下
- 文本视类怎么响应其嵌入的对话框控件消息
- LoadBitmap 多次调用出错
- 关于类的成员函数的调用问题,一定散分。
- 如何导入ADO???
- vc activeX控件注册成功,但未能实例化?!
- 大家帮我看看下面的代码 问题出在哪里??怎么会有溢出的问题?
- VC++ 我要最大化对话框,但是不要它全屏显示,就是屏幕上一直都有任务栏。
我试了
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
CRect rect;
GetClientRect(&rect);
m_wndSplitter1.SetRowInfo(1, rect.Width()/2, 10);
m_wndSplitter1.RecalcLayout();
}和
void COutPutView::OnSize(UINT nType, int cx, int cy)
{
CEditView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
// CRect rect;
// GetClientRect(&rect);
//
// CMainFrame* pMainfrm;
// pMainfrm = (CMainFrame*)AfxGetMainWnd();
// pMainfrm->m_wndSplitter1.SetRowInfo(1, rect.Width()/2, 0);
// pMainfrm->m_wndSplitter1.RecalcLayout();}这两个地方都报错呵呵,谢谢
在CMainFrame的WM_SIZE的消息响应函数中OnSize中这里写
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);// TODO: Add your message handler code here
if(bFlag)
{
CRect rect;
GetClientRect(&rect);
m_wndSplitter1.SetRowInfo(1, rect.Width()/2, 10);
m_wndSplitter1.RecalcLayout();
}
}