📄 worksbar.cpp
字号:
#include "stdafx.h"
#include "resource.h"
#include "editcmd.h"
#include "worksbar.h"
#include "wm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma warning ( disable : 4711 )
/////////////////////////////////////////////////////////////////////////////
// CWorkspaceBar
CWorkspaceBar::CWorkspaceBar () : CAppBar (), m_pwndExplorer (NULL), m_pwndProject (NULL)
{
}
CWorkspaceBar::~CWorkspaceBar ()
{
if (m_pwndExplorer)
delete m_pwndExplorer;
if (m_pwndProject)
delete m_pwndProject;
}
BEGIN_MESSAGE_MAP (CWorkspaceBar, CAppBar)
//{{AFX_MSG_MAP( CWorkspaceBar )
ON_WM_CREATE ()
ON_MESSAGE (WM_APPEND_MENU, OnAppendMenu)
ON_MESSAGE (WM_PROCESS_MENU, OnProcessMenu)
ON_MESSAGE (WM_APPEND_PROPS, OnAppendProps)
//}}AFX_MSG_MAP
END_MESSAGE_MAP ()
bool CWorkspaceBar::IsExplorer ()
{
return m_pwndExplorer && m_pwndExplorer->GetSafeHwnd ();
}
bool CWorkspaceBar::CreateExplorer ()
{
m_pwndExplorer = new CExplorePlug;
CRect rect (0, 0, 220, 400);
if (!m_pwndExplorer->Create (WS_CHILD|WS_VISIBLE|TVS_HASLINES|TVS_HASBUTTONS|TVS_SHOWSELALWAYS, rect, &m_wndTabCtrl, 1))
{
TRACE (_T("Failed to create CExplorePlug\n"));
return false;
}
m_pwndExplorer->SendMessage (SHLT_MODIFYPATTERN, 0, (LPARAM) _T ("*.*"));
m_pwndExplorer->SendMessage (SHLT_MODIFYFLAGS, 0, SHLT_FILES|SHLT_REFRESHONEXPAND);
m_pwndExplorer->ModifyStyleEx (0, WS_EX_CLIENTEDGE);
m_wndTabCtrl.AddTabItem (0, _T ("Explorer"), m_pwndExplorer->GetSafeHwnd ());
m_wndTabCtrl.GetTabItemOffsets (rect);
m_wndTabCtrl.AddChild (m_pwndExplorer->GetSafeHwnd (), ORD_SET_BEGIN|ORD_SET_BACK_END, rect, NULL);
m_wndTabCtrl.ShowSelTabWnd ();
return true;
}
void CWorkspaceBar::DestroyExplorer ()
{
ASSERT (m_pwndExplorer->GetSafeHwnd ());
m_wndTabCtrl.RemoveChild (m_pwndExplorer->GetSafeHwnd ());
m_wndTabCtrl.RemoveTabItem (m_pwndExplorer);
m_pwndExplorer->DestroyWindow ();
delete m_pwndExplorer;
m_pwndExplorer = NULL;
}
bool CWorkspaceBar::ToggleExplorer ()
{
if (IsExplorer ())
DestroyExplorer ();
else
return CreateExplorer ();
return true;
}
bool CWorkspaceBar::IsProject ()
{
return m_pwndProject && m_pwndProject->GetSafeHwnd ();
}
bool CWorkspaceBar::CreateProject ()
{
m_pwndProject = new CProjectTreeCtrl;
CRect rect (0, 0, 220, 400);
if (!m_pwndProject->Create (WS_CHILD|WS_VISIBLE|TVS_HASLINES|TVS_HASBUTTONS|TVS_SHOWSELALWAYS|TVS_EDITLABELS, rect, &m_wndTabCtrl, 1))
{
TRACE (_T("Failed to create CProjectTreeCtrl\n"));
return false;
}
m_pwndProject->ModifyStyleEx (0, WS_EX_CLIENTEDGE);
m_wndTabCtrl.AddTabItem (0, _T ("Project"), m_pwndProject->GetSafeHwnd ());
m_wndTabCtrl.GetTabItemOffsets (rect);
m_wndTabCtrl.AddChild (m_pwndProject->GetSafeHwnd (), ORD_SET_BEGIN|ORD_SET_BACK_END, rect, NULL);
m_wndTabCtrl.ShowSelTabWnd ();
return true;
}
void CWorkspaceBar::DestroyProject ()
{
ASSERT (m_pwndProject->GetSafeHwnd ());
m_wndTabCtrl.RemoveChild (m_pwndProject->GetSafeHwnd ());
m_wndTabCtrl.RemoveTabItem (m_pwndProject);
m_pwndProject->DestroyWindow ();
delete m_pwndProject;
m_pwndProject = NULL;
}
bool CWorkspaceBar::ToggleProject ()
{
if (IsProject ())
DestroyProject ();
else
return CreateProject ();
return true;
}
void CWorkspaceBar::EmptyProject ()
{
if (!IsProject ())
return;
m_pwndProject->PopulateEmpty ();
}
void CWorkspaceBar::PopulateProject ()
{
if (!IsProject ())
return;
m_pwndProject->Populate ();
}
/////////////////////////////////////////////////////////////////////////////
// CWorkspaceBar message handlers
int CWorkspaceBar::OnCreate (LPCREATESTRUCT lpCreateStruct)
{
if (CAppBar::OnCreate (lpCreateStruct) == -1)
return -1;
CRect rect (0, 0, 220, 400);
if (!m_wndTabCtrl.Create (WS_CHILD|WS_VISIBLE|TCS_OWNERDRAWFIXED|TCS_BOTTOM|TCS_TOOLTIPS, rect, this, 1))
{
TRACE (_T("Failed to create CAppTabCtrl\n"));
return -1;
}
AddChild (m_wndTabCtrl.GetSafeHwnd (), ORD_FULL_END, CRect(0, 0, 0, 0), NULL);
CreateExplorer ();
CreateProject ();
return 0;
}
CString CWorkspaceBar::
GetName ()
{
return _T ("Workspace");
}
/////////////////////////////////////////////////////////////////////////////
#pragma warning ( default : 4711 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -