c++-MFC 单文档视图分割的视图大小问题

问题描述

MFC 单文档视图分割的视图大小问题
 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
    // TODO:  在此添加专用代码和/或调用基类
    if (!m_wndSplitter.CreateStatic(this, 1, 2))
    {
        return FALSE;
    }
    CRect rect;
    GetClientRect(&rect);

    m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(TreeView), CSize(rect.Width() / 3 - 170, rect.Height()), pContext);

    if (!m_wndSplitter2.CreateStatic(&m_wndSplitter, 1, 2, WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 1))
        || !m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(RichEditView), CSize(rect.Width() / 3, rect.Height()), pContext))
    {
        return FALSE;
    }

    if (!m_wndSplitter3.CreateStatic(&m_wndSplitter2, 2, 1, WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 0))
        || !m_wndSplitter3.CreateView(0, 0, RUNTIME_CLASS(EditView), CSize(rect.Width() / 3, rect.Height() / 10), pContext)
        || !m_wndSplitter3.CreateView(1, 0, RUNTIME_CLASS(ListView), CSize(rect.Width() / 3, rect.Height() * 0.9), pContext))
    {
        return FALSE;
    }

    return TRUE;
    //return CFrameWnd::OnCreateClient(lpcs, pContext);
}

想把视图分割成3列,并且第二列是两行的。
但是运行出来中间一列的宽度不对,非常窄,高度倒是对的。。不知道怎么回事。。

解决方案

csplitterwnd里面有两个设置colinfo和rowinfo的函数, 要注意的是这个是设置视频的边缘的宽度, col表示宽, row是高

解决方案二:

CSize(rect.Width() / 3 - 170
减170干嘛

时间: 2024-10-29 03:37:44

c++-MFC 单文档视图分割的视图大小问题的相关文章

mfc窗口切换视图-MFC单文档视图 窗口分割 如何切换视图

问题描述 MFC单文档视图 窗口分割 如何切换视图 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: Add your specialized code here and/or call the base class if(!m_wndSplitter.CreateStatic(this,1,2)) return FALSE; if(!m_wndSplitter.Cr

c++-求助!MFC单文档多视图的各视图的问题

问题描述 求助!MFC单文档多视图的各视图的问题 如果我只用系统最初建好的文档类来储存数据,而各视图显示的是数据的不同部分,1.首先这样是否能实现?还是说必须每个视图要建一个文档?2.如果可以.那么我怎么获得其中某个视图的指针?(比如我这里用到的有CTreeView,CRichEditView,并且CRichView的视图块有两个,需要让他们独立显示,而不是共同显示一个数据) 目前只是把视图单纯地分割了,代码如下 BOOL CMainFrame::OnCreateClient(LPCREATES

数据-MFC 单文档视图切分视图调用问题

问题描述 MFC 单文档视图切分视图调用问题 在MainFrm.cpp 里对主视图进行了切分 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: Add your specialized code here and/or call the base class // CRect rc; // 获取框架窗口客户区的CRect对象 GetClientRect(&rc); /

c++-MFC 单文档 多视图中各视图的创建顺序能否改变?

问题描述 MFC 单文档 多视图中各视图的创建顺序能否改变? 每个视图OnInitialupdate()的顺序能否改变? 我每个视图的创建顺序先后会互相影响,所以需要各视图能按我希望的顺序创建 我之前猜测CMainFrame::OnCreateClient中各视图的分割语句顺序可能影响其创建顺序,但是刚才调试发现貌似不是的.. 解决方案 将那些涉及顺序的代码从OnInitialupdate()提取出来,作为独立的函数. 定义一个全局变量,比如int steps=0 每个OnInitialupda

当文档分割-请问mfc单文档分割窗口后,原来可以显示图形的VIEW函数怎么修改才能让其显示原来发的图形。

问题描述 请问mfc单文档分割窗口后,原来可以显示图形的VIEW函数怎么修改才能让其显示原来发的图形. BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: 在此添加专用代码和/或调用基类 if(m_splitter.CreateStatic(this,1,2)==NULL) return FALSE; CRect rect; GetClientRect(&rect);

【数字图像处理】 二.MFC单文档分割窗口显示图片

本文是讲述<数字图像处理>系列文章,继上篇讲述BMP格式图片和显示后,该篇讲述如何对单文档进行分割.主要是采用CSplitterWnd静态分割窗口显示图片等相关知识.本文主要结合自己的课程及常用图片软件讲解. 一. CSplitterWnd静态分割窗口 1.CSplitterWnd类基础知识(该部分引用:百度百科和麦田里的稻草人博客)CSplitterWnd类提供一个分离器窗口的功能,分隔器窗口是一个包含有多个窗格的窗口.窗格通常是应用程序特定的由CView派生的对象,但它也可以是具有适当子窗

树形结构-急!MFC单文档多视图的CTreeView不能正常使用

问题描述 急!MFC单文档多视图的CTreeView不能正常使用 class TreeView : public CTreeView 是我自建的树形结构C++类 void TreeView::OnInitialUpdate() { CTreeView::OnInitialUpdate(); TVINSERTSTRUCT ti = { 0 }; HTREEITEM hParent, Parent; //TreeView* m_pMyView = (TreeView*)m_wndSplitter.G

ceditview-求助!MFC 单文档多视图 CEditView加载的背景图片被挡住的问题

问题描述 求助!MFC 单文档多视图 CEditView加载的背景图片被挡住的问题 貌似是加载的背景图片被输入的那一行的背景覆盖了.. 如图,其中圈起来的就是CEditView,视图底部还能看见背景图片的一部分,但光标所在的那一行就没有图片的显示了,而且我如果按了回车换行,下面一行也会被覆盖..以下代码. 视图类中相关变量: CEdit* m_pCtrlREdit;// 内嵌的CEditCtrl控件指针 CImage m_ImageLogo; // 图片 UINT widthPic height

c++-MFC单文档 CTreeView 树结点前加小图标的方法

问题描述 MFC单文档 CTreeView 树结点前加小图标的方法 RT.是在视图分割了以后要用到的. 要在每个根项前加一个图标1,同时在根项的子项前加图标2 不太了解这块..麻烦讲详细点,万分感谢! 解决方案 参考:http://blog.csdn.net/lifu119/article/details/7024268 关键点: himl=ImageList_Create(16,16,ILC_COLOR32,1,12); ImageList_Add(himl,LoadBitmap(hInstX