zoukankan      html  css  js  c++  java
  • MFC中使用CSplitterWnd分割窗口后设置视图大小的问题

      开发环境:vs2010

      在对框架窗口进行分割之后需要根据需求设置每个分割窗口的大小,但是在通过createView(...)设置大小时,往往起不到想要的结果,如下代码并不能将框架的窗口按照预设的大小来进行分割:

     1 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
     2 {
     3     // TODO: 在此添加专用代码和/或调用基类
     4     //return CFrameWndEx::OnCreateClient(lpcs, pContext);
     5     isSplitter = splitterWnd(pContext);
     6     return isSplitter;
     7 }
     8 
     9 bool CMainFrame::splitterWnd(CCreateContext* pContext)
    10 {
    11     if(!m_mainSplitter.CreateStatic(this,1,3))
    12         return false;
    13     if(!m_leftSplitter.CreateStatic(&m_mainSplitter,2,1,WS_CHILD | WS_VISIBLE,m_mainSplitter.IdFromRowCol(0,0)))
    14         return false;
    15 
    16     m_leftSplitter.CreateView(0,0,RUNTIME_CLASS(CInputImage),CSize(10,1),pContext);
    17     m_leftSplitter.CreateView(1,0,RUNTIME_CLASS(CCalculateItem),CSize(10,1),pContext);
    18     m_mainSplitter.CreateView(0,1,RUNTIME_CLASS(COriginImage),CSize(1,1),pContext);
    19     m_mainSplitter.CreateView(0,2,RUNTIME_CLASS(CCalculateResult),CSize(1,1),pContext);
    20 
    21     return true;
    22 }
    View Code

      这时候,需要在设置了在CreateView后,使用m_wndSplitter.SetRowInfo(....)设置水平分割条的位置,通常可以onSize()函数中进行设置,以达到分割窗口能够根据父窗口的大小自动调整,代码如下:

     1 void CMainFrame::OnSize(UINT nType, int cx, int cy)
     2 {
     3     CFrameWndEx::OnSize(nType, cx, cy);
     4 
     5     // TODO: 在此处添加消息处理程序代码
     6     CRect clientRect;
     7     GetClientRect(&clientRect);
     8 
     9     if(isSplitter)
    10     {
    11         m_mainSplitter.SetColumnInfo(0,clientRect.Width() * 0.15,10);
    12         m_mainSplitter.SetColumnInfo(1,clientRect.Width() * 0.7,10);
    13         m_leftSplitter.SetRowInfo(0,clientRect.Height() * 0.15,10);
    14         m_mainSplitter.RecalcLayout();
    15         m_leftSplitter.RecalcLayout();
    16     }
    17 }
    View Code

    参考网帖:http://bbs.csdn.net/topics/390478203?page=1

  • 相关阅读:
    mysql性能优化学习笔记(1)优化目的、方向及数据库准备
    php笔试算法题:顺时针打印矩阵坐标蛇形算法
    离职了,一切从头开始
    mysql性能优化学习笔记(2)如何发现有问题的sql
    WTL的使用
    获取程序当前目录的绝对路径
    [读书笔记]《C#本质论》读书笔记
    [.NET]ConcurrentDictionary 线程安全的集合类
    RakNet中文手册
    Python SCons
  • 原文地址:https://www.cnblogs.com/liujinyao/p/4192405.html
Copyright © 2011-2022 走看看