我现在想把窗口先左右分在再右边上下分,左边的窗体作成QQ的那种形式,右边放一些文本,现在我找到一个例程,做的都擦不多了就是右边没有分,我试过用以前帖子的方法分,但是有错误,请大哥赐教!!!程序如下: if (!wndSplitter.CreateStatic(this, 1, 2)) return false; if (!wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(0,0), pContext)) return false; DWORD dwf = CGfxOutBarCtrl::fDragItems|CGfxOutBarCtrl::fEditGroups|CGfxOutBarCtrl::fEditItems|CGfxOutBarCtrl::fRemoveGroups|
CGfxOutBarCtrl::fRemoveItems|CGfxOutBarCtrl::fAddGroups|CGfxOutBarCtrl::fAnimation;
我应该怎么分?
CGfxOutBarCtrl::fRemoveItems|CGfxOutBarCtrl::fAddGroups|CGfxOutBarCtrl::fAnimation;
我应该怎么分?
解决方案 »
- 谁实现过域用户身份验证集成?
- 求多行文本显示控件(能快速高效刷新的)
- 高手帮助:socket接收数据问题,接收数据比较快而且多,需要将接收到的数据在多线程中进行处理!
- 在keydown消息中如何同时读入两个方向键,如上,左, 使动画向左上方移动?请教!1
- 实在是不行了请有经验的高手近来帮忙!!!!!!!!!
- CreateProcess的当前进程的当前目录是什么?
- 哪里有"windows2000编程技术内幕" 光盘代码下载?多谢
- 小弟请求帮助谢谢在线等待150一个问题
- 关于报文结构的定义(使用C语言)?
- h264码流存储视频问题,望指教,谢谢
- 我在用DAO时,选择数据库那一步(step2 of 6) ,选择数据库后,OK时,为什么 提示一个错误(Unrecognize Database format "数据库路径")
- 菜问题:程序自动中断并显示汇编代码。怎么办?
if(!m_wndSplitter.CreateStatic(this, 1, 2))return FALSE; if(!m_wndSplitter1.CreateStatic(&m_wndSplitter,2,1,WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 0)))
return FALSE; //将第1行0列再分开1行2列
if(!m_wndSplitter1.CreateView(0, 0, RUNTIME_CLASS(CPlayerView), CSize(200, 300), pContext)) return FALSE;
if(!m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CInfoView), CSize(200, 60), pContext)) return FALSE;
// if(!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CPlayerView), CSize(100, 100), pContext))return FALSE;
if(!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CHSView), CSize(600, 100), pContext)) return FALSE;
m_wndSplitter.SetColumnInfo(0, 200, 100);我这里是左边分两个View,你自己改一下吧,m_wndSplitter左右分,m_wndSplitter1上下分
CRect rect;
GetClientRect(&rect);
CSize sizeTree = rect.Size();
CSize sizeList = rect.Size(); sizeTree.cx = rect.Width()*2/7;
sizeList.cy = rect.Height()-10;
if (m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CLogAuditTree),sizeTree, pContext))
{
if (m_wndSplitter2.CreateStatic(&m_wndSplitter1, 2, 1, WS_CHILD | WS_VISIBLE | WS_BORDER,m_wndSplitter1.IdFromRowCol(0, 1)))
{
if (m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CLogAuditList),sizeList, pContext))
{
m_editview = m_wndSplitter2.AddView(1, 0, RUNTIME_CLASS(CLogAuditEdit), pContext);
m_htmlview = m_wndSplitter2.AddView(1,0,RUNTIME_CLASS(CReportHtml), pContext);
m_moniview = m_wndSplitter2.AddView(1,0,RUNTIME_CLASS(CMoniReport), pContext);
pTree = (CLogAuditTree*) m_wndSplitter1.GetPane(0,0);
pList = (CLogAuditList*) m_wndSplitter2.GetPane(0,0);
pList->SetUniqueName( "MyView" );
pEdit = (CLogAuditEdit*)m_wndSplitter2.GetView(m_editview);
m_wndSplitter2.ShowView(m_editview); return TRUE;
}
}
}
}
CCreateContext* pContext)
{
// create splitter window
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE; m_wndSplitter.SetColumnInfo(0, 200, 0);
//将右边划分为两行一列
if(m_rightHSplitter.CreateStatic(&m_wndSplitter, 2,1, WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 1)) == NULL)
return FALSE;
if( !m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(200, 600), pContext) ||
!m_rightHSplitter.CreateView(0, 0, RUNTIME_CLASS(CTableView), CSize(500, 400), pContext)||
!m_rightHSplitter.CreateView(1, 0, RUNTIME_CLASS(CInforView), CSize(500, 200), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
} this->SetActiveView(GetTableView());
return TRUE;
}
最好不要用pContext->m_pNewViewClass