VS2005 左右下各一个窗口 1

来源:互联网 发布:淘宝怎么刷信用卡 编辑:程序博客网 时间:2024/05/17 08:27


目标,左边树形结构,右边ListView,下面Log日志。

今天晚上做一个,边做边写吧。
1,新建一个项目,选SDI, 其他默认了事。
2,打开Mainfrm.h 属性里面增加一个
     CSplitterWnd m_wndSplitter; 
   实现里面增加一个
     CView
* GetLeftPane();
     CView
* GetRightPane();
    重写里面增加
     
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
3,打开Mainfrm.cpp文件
    头部加入include语句,把Doc,View类包含进来。
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT 
/*lpcs*/,
    CCreateContext
* pContext)
{
    
// 创建拆分窗口
    if (!m_wndSplitter.CreateStatic(this12))
        
return FALSE;

    
if (!m_wndSplitter.CreateView(00, RUNTIME_CLASS(CTestView), CSize(150100), pContext) ||
        
!m_wndSplitter.CreateView(01, RUNTIME_CLASS(CTestView), CSize(100100), pContext))
    
{
        m_wndSplitter.DestroyWindow();
        
return FALSE;
    }


    
return TRUE;
}

     注,代码中CTestView应该分别是左右两个View,现在先弄出效果来再说。稍后再改这里。

4,运行一下。OK了,左右没问题了。
5,下面的只能用Dock方式放个Toolbar了。
6, 自己写一个CLogBar 从CControlBar继承,里面放上一个CRichEditCtrl.
7, MainFrm.h 增加
        CLogBar        m_wndLog;
    CImageList    m_ImageList;

8, Mainfrm.cpp里面,最后,return前面,
        
//下面的日志窗口的东西
    m_ImageList.Create(IDB_BARIMAGELIST, 131, RGB(0,255,0));
    m_wndLog.SetBtnImageList(
&m_ImageList);
    
if (!m_wndLog.Create(this, ID_LOG_MON, _T("Output"), CSize(200,150)))
    
{
        TRACE0(
"Failed to create dialog bar m_wndLog ");
        
return -1;        // fail to create
    }

    
// allow bar to be resized when floating
    m_wndLog.SetBarStyle(m_wndLog.GetBarStyle() |
        CBRS_TOOLTIPS 
| CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

    m_wndLog.EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(
&m_wndLog, AFX_IDW_DOCKBAR_BOTTOM);
    m_wndLog.SetMenuID(ID_EDITOR_POPUP_MENU);
大概就是这样,当然缺少配置Resouce那些东西,不写了,休息,休息,明天继续。

 效果图:

原创粉丝点击