切分窗口的例子! 如题!!!!!!!!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你觉得CSplitterWnd难用或者不是很灵活可以自己实现分割窗口的,创建一个分割条,拖动分隔条时移动两边窗口位置即可 http://blog.csdn.net/VisualEleven/article/details/6460564 给个例子吧//第一步:OnCreateClientBOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext){ m_bSpliterCreated = m_wndSplitter.CreateStatic(this,2,1); //建立外层架构,一行两列 m_wndLeftSplitter.CreateStatic( //建立内层架构,两行一列 &m_wndSplitter, //以外层splitter为父窗体 1,2, WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(0,0) //指定新的splitter占据外层架构的左方格 ); m_wndLeftSplitter.CreateView( 0,0, RUNTIME_CLASS(CVedioClientView), CSize(0,0), pContext ); m_wndLeftSplitter.CreateView( 0,1, RUNTIME_CLASS(CAlarmMesListView), CSize(0,0), pContext ); m_wndSplitter.CreateView( 1,0, RUNTIME_CLASS(CDeviceTreeView), CSize(0,0), pContext ); g_pVedioClientView = (CVedioClientView*)m_wndLeftSplitter.GetPane(0,0); g_pDeviceTreeView = (CDeviceTreeView*)m_wndSplitter.GetPane(0,0); g_pAlarmMesListView = (CAlarmMesListView*)m_wndSplitter.GetPane(1,0); g_pAlarmMesListView->SetWindowTextA("报警"); return m_bSpliterCreated;}//第二步:OnSize也需要修改void CMainFrame::OnSize(UINT nType, int cx, int cy){ CFrameWnd::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码 CRect rect; GetWindowRect(&rect); if (m_bSpliterCreated) { m_wndSplitter.SetRowInfo(0,rect.Height()/2,1); m_wndSplitter.SetRowInfo(1,rect.Height()/2,1); m_wndLeftSplitter.SetColumnInfo(0,rect.Width()/2,1); m_wndLeftSplitter.SetColumnInfo(1,rect.Width()/2,1); m_wndSplitter.RecalcLayout(); }} 用自己所有分,求问:VC中使用webbrowser,我想拦截下载对话框,程序指定默认下载路径,取出文件名,有请jiangsheng(蒋晟)大哥继续帮忙,谢谢大家 求大神吗,为什么窗口不显示 vc mfc 工具栏变灰 我想问问关于RAND的用法,大家进来看看。谢谢 windows sdk那里有下载?谢谢 高手进来:如何响应动态创建的CTreeCtrl的消息? 怎么提取html文件里的元素 网页上通过单击连接生成的对话框内的TextArea 的 put_value 问题 com 与 dll d3d10 11 texture2D 缩放 怎么写界面库? VC如何打开文件夹
//第一步:OnCreateClient
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
m_bSpliterCreated = m_wndSplitter.CreateStatic(this,2,1); //建立外层架构,一行两列 m_wndLeftSplitter.CreateStatic( //建立内层架构,两行一列
&m_wndSplitter, //以外层splitter为父窗体
1,2,
WS_CHILD|WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0,0) //指定新的splitter占据外层架构的左方格
);
m_wndLeftSplitter.CreateView(
0,0,
RUNTIME_CLASS(CVedioClientView),
CSize(0,0),
pContext
); m_wndLeftSplitter.CreateView(
0,1,
RUNTIME_CLASS(CAlarmMesListView),
CSize(0,0),
pContext
); m_wndSplitter.CreateView(
1,0,
RUNTIME_CLASS(CDeviceTreeView),
CSize(0,0),
pContext
);
g_pVedioClientView = (CVedioClientView*)m_wndLeftSplitter.GetPane(0,0);
g_pDeviceTreeView = (CDeviceTreeView*)m_wndSplitter.GetPane(0,0);
g_pAlarmMesListView = (CAlarmMesListView*)m_wndSplitter.GetPane(1,0);
g_pAlarmMesListView->SetWindowTextA("报警");
return m_bSpliterCreated;
}//第二步:OnSize也需要修改
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码
CRect rect;
GetWindowRect(&rect);
if (m_bSpliterCreated)
{
m_wndSplitter.SetRowInfo(0,rect.Height()/2,1);
m_wndSplitter.SetRowInfo(1,rect.Height()/2,1); m_wndLeftSplitter.SetColumnInfo(0,rect.Width()/2,1);
m_wndLeftSplitter.SetColumnInfo(1,rect.Width()/2,1);
m_wndSplitter.RecalcLayout();
}
}