editarticlechildframe.cpp
来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C++ 代码 · 共 191 行
CPP
191 行
// EditArticleChildFrame.cpp : implementation file
//
#include "stdafx.h"
#include "community.h"
#include "EditArticleChildFrame.h"
#include "EditArticle.h"
#include "PreViewView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEditArticleChildFrame
IMPLEMENT_DYNCREATE(CEditArticleChildFrame, CMDIChildWnd)
CEditArticleChildFrame::CEditArticleChildFrame()
{
m_pArticleDoc = NULL ;
}
CEditArticleChildFrame::~CEditArticleChildFrame()
{
}
BEGIN_MESSAGE_MAP(CEditArticleChildFrame, CMDIChildWnd)
//{{AFX_MSG_MAP(CEditArticleChildFrame)
ON_WM_CREATE()
ON_WM_DESTROY()
ON_COMMAND(ID_EDIT_ARTICLE_VIEW, OnEditArticleView)
ON_UPDATE_COMMAND_UI(ID_EDIT_ARTICLE_VIEW, OnUpdateEditArticleView)
ON_COMMAND(ID_PREVIEW_ARTICLE_VIEW, OnPreviewArticleView)
ON_UPDATE_COMMAND_UI(ID_PREVIEW_ARTICLE_VIEW, OnUpdatePreviewArticleView)
ON_COMMAND(ID_VIEW_EDIT_CONTENT_TOOLBAR, OnViewEditContentToolbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_EDIT_CONTENT_TOOLBAR, OnUpdateViewEditContentToolbar)
ON_COMMAND(ID_VIEW_VIEW_TOOLBAR, OnViewViewToolbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_VIEW_TOOLBAR, OnUpdateViewViewToolbar)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEditArticleChildFrame message handlers
BOOL CEditArticleChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
m_pArticleDoc = (CArticleDoc*)pContext->m_pCurrentDoc ;
// 创建拆分器窗口
if (!m_wndSplitter.CreateStatic(this, 2, 1))
return FALSE;
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CEditArticleView), CSize(700, 300), pContext) )
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
if(!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CPreViewView), CSize(700, 200), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
return TRUE;
}
int CEditArticleChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//最大化子窗口及视图
ShowWindow(SW_SHOWMAXIMIZED);
::SendMessage(NULL,WM_MDIMAXIMIZE,(WPARAM)GetSafeHwnd(),NULL);
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_EDIT_ARTICLE_VIEW))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_wndToolBar.EnableDocking(CBRS_ALIGN_TOP);
if (!m_wndEditContentToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndEditContentToolBar.LoadToolBar(IDR_EDIT_CONTENT))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_wndEditContentToolBar.EnableDocking(CBRS_ALIGN_TOP );
m_wndReBar.Create(this);
EnableDocking(CBRS_ALIGN_ANY);
DWORD dwAddStyle = (RBBS_FIXEDBMP | RBBS_GRIPPERALWAYS | RBBS_CHILDEDGE);
if (!m_wndReBar.AddBar(&m_wndToolBar, NULL, NULL, dwAddStyle))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
}
if (!m_wndReBar.AddBar(&m_wndEditContentToolBar, NULL, NULL, dwAddStyle))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
}
CReBarCtrl& reBar= m_wndReBar.GetReBarCtrl( ) ;
reBar.MaximizeBand(1);
CSetting::SetChildFrameStateInfo(CHILDFRAME_TYPE_EDITARTICEL,true);
return 0;
}
void CEditArticleChildFrame::OnDestroy()
{
CMDIChildWnd::OnDestroy();
CSetting::SetChildFrameStateInfo(CHILDFRAME_TYPE_EDITARTICEL,false);
}
void CEditArticleChildFrame::OnEditArticleView()
{
int cyCur1,cyCur2,cyMin1,cyMin2 ;
m_wndSplitter.GetRowInfo(0,cyCur1,cyMin1);
m_wndSplitter.GetRowInfo(1,cyCur2,cyMin2);
m_wndSplitter.SetRowInfo(0,cyCur1+cyCur2,0);
m_wndSplitter.SetRowInfo(0,cyCur1+cyCur2,0);
m_wndSplitter.RecalcLayout();
}
void CEditArticleChildFrame::OnUpdateEditArticleView(CCmdUI* pCmdUI)
{
int cyCur,cyMin ;
m_wndSplitter.GetRowInfo(1,cyCur,cyMin);
pCmdUI->Enable(0 != cyCur) ;
}
void CEditArticleChildFrame::OnPreviewArticleView()
{
int cyCur1,cyCur2,cyMin1,cyMin2 ;
m_wndSplitter.GetRowInfo(0,cyCur1,cyMin1);
m_wndSplitter.GetRowInfo(1,cyCur2,cyMin2);
m_wndSplitter.SetRowInfo(0,0,0);
m_wndSplitter.SetRowInfo(1,cyCur1+cyCur2,0);
m_wndSplitter.RecalcLayout();
}
void CEditArticleChildFrame::OnUpdatePreviewArticleView(CCmdUI* pCmdUI)
{
int cyCur,cyMin ;
m_wndSplitter.GetRowInfo(0,cyCur,cyMin);
pCmdUI->Enable(0 != cyCur) ;
}
void CEditArticleChildFrame::OnViewEditContentToolbar()
{
ShowControlBar(&m_wndEditContentToolBar, (m_wndEditContentToolBar.GetStyle() & WS_VISIBLE) == 0, FALSE);
}
void CEditArticleChildFrame::OnUpdateViewEditContentToolbar(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck((m_wndEditContentToolBar.GetStyle() & WS_VISIBLE) != 0);
}
void CEditArticleChildFrame::OnViewViewToolbar()
{
ShowControlBar(&m_wndToolBar, (m_wndToolBar.GetStyle() & WS_VISIBLE) == 0, FALSE);
}
void CEditArticleChildFrame::OnUpdateViewViewToolbar(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck((m_wndToolBar.GetStyle() & WS_VISIBLE) != 0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?