none
怎么用CSplitterWnd把CDockablePane切分成两部分 RRS feed

答案

  • 你好,

    >>AddWindow的实现

    关于AddWindow的实现,代码如下:

    class CPaneSplitter : public CSplitterWndEx
    {
    public :
      BOOL AddWindow(int row, int col, CWnd* pWin,CString clsName,
      DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit);
    };
    BOOL CPaneSplitter::AddWindow(int row, int col, CWnd* pWnd , 
         CString clsName , DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit)
    {
      //设置该窗格的初始大小
      m_pColInfo[col].nIdealSize = sizeInit.cx;
      m_pRowInfo[row].nIdealSize = sizeInit.cy;
      CRect rect(CPoint(0,0), sizeInit);
      if(!pWnd->CreateEx(dwStyleEx,clsName,NULL,dwStyle,rect,this,IdFromRowCol(row, col)))
          return FALSE;
      return TRUE;
    }

    我建议你可以参考以下链接中的Adding a SpliteWnd to Pane:
    https://www.codeproject.com/Articles/493218/Understanding-CDockablePane

    Best wishes,

    Jeanine Zhang

    • 已标记为答案 Hota_CT 2019年2月25日 11:46
    2019年2月25日 7:53
    版主

全部回复

  • 你好,

    感谢您在MSDN论坛发帖提问。

    >>怎么用CSplitterWnd把CDockablePane切分成两部分

    CSplitterWnd 类提供拆分窗口功能,使窗口包含多个窗格。
    一个CSplitterWnd对象通常会嵌入父级CFrameWnd或CMDIChildWnd对象。 创建CSplitterWnd对象使用以下步骤:
    1,嵌入CSplitterWnd父框架中的成员变量。
    2,重写父框架CFrameWnd::OnCreateClient成员函数。
    3,从中重写OnCreateClient,调用创建或CreateStatic成员函数的CSplitterWnd。

    更多关于如何拆分CDockablePane的细节,你可以参考这个链接:https://stackoverflow.com/questions/7184620/how-can-i-split-a-cdockablepane

    Best wishes,

    Jeanine Zhang

    2019年2月22日 6:00
    版主
  • 感谢你得回复

    你给的这个链接和我的目的是一模一样的

    只不过少了这这部分代码的实现 AddWindow的实现

    class CPaneSplitter : public CSplitterWndEx
    {
     public :
        BOOL AddWindow(int row, int col, CWnd* pWin,CString clsName, 
        DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit);
    };

    我试着在里面实现CreateView 或者 Create发现都不能达到目标效果,请问,并且参数数量类型都对不太上

    请问这个大概该怎么实现呢?

    2019年2月25日 7:15
  • 你好,

    >>AddWindow的实现

    关于AddWindow的实现,代码如下:

    class CPaneSplitter : public CSplitterWndEx
    {
    public :
      BOOL AddWindow(int row, int col, CWnd* pWin,CString clsName,
      DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit);
    };
    BOOL CPaneSplitter::AddWindow(int row, int col, CWnd* pWnd , 
         CString clsName , DWORD dwStyle,DWORD dwStyleEx, SIZE sizeInit)
    {
      //设置该窗格的初始大小
      m_pColInfo[col].nIdealSize = sizeInit.cx;
      m_pRowInfo[row].nIdealSize = sizeInit.cy;
      CRect rect(CPoint(0,0), sizeInit);
      if(!pWnd->CreateEx(dwStyleEx,clsName,NULL,dwStyle,rect,this,IdFromRowCol(row, col)))
          return FALSE;
      return TRUE;
    }

    我建议你可以参考以下链接中的Adding a SpliteWnd to Pane:
    https://www.codeproject.com/Articles/493218/Understanding-CDockablePane

    Best wishes,

    Jeanine Zhang

    • 已标记为答案 Hota_CT 2019年2月25日 11:46
    2019年2月25日 7:53
    版主
  • 多谢解答
    2019年2月25日 11:46