⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 c++系统开发实例精粹内附的80例源代码 环境:windows2000,c++6.0
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "$$root$$.h"
#include "TreeViewClass.h"
#include "TreeViewFile.h"
#include "TreeViewResource.h"
#include "FormViewTest.h"
#include "MainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNAMIC(CMainFrame, CCJMDIFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CCJMDIFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_VIEW_BAR1, OnViewBar1)
	ON_UPDATE_COMMAND_UI(ID_VIEW_BAR1, OnUpdateViewBar1)
	ON_COMMAND(ID_VIEW_BAR2, OnViewBar2)
	ON_UPDATE_COMMAND_UI(ID_VIEW_BAR2, OnUpdateViewBar2)
	ON_COMMAND(ID_VIEW_BAR3, OnViewBar3)
	ON_UPDATE_COMMAND_UI(ID_VIEW_BAR3, OnUpdateViewBar3)
	ON_COMMAND_EX(ID_VIEW_OUTPUT1, OnBarCheck)
	ON_UPDATE_COMMAND_UI(ID_VIEW_OUTPUT1, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_OUTPUT2, OnBarCheck)
	ON_UPDATE_COMMAND_UI(ID_VIEW_OUTPUT2, OnUpdateControlBarMenu)
	ON_COMMAND_EX(ID_VIEW_WORKSPACE, OnBarCheck)
	ON_UPDATE_COMMAND_UI(ID_VIEW_WORKSPACE, OnUpdateControlBarMenu)
	ON_COMMAND(ID_EDIT_FIND, OnButton)
	ON_COMMAND(ID_EDIT_REDO, OnButton)
	ON_COMMAND(ID_EDIT_UNDO, OnButton)
	ON_CBN_SELENDOK(ID_COMBOBOX, OnSelendOkCombo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	m_pComboBox = NULL;
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CCJMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.Create(this) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}

	// Add a drop down to button
	m_wndToolBar.AddDropDownButton(
		ID_EDIT_UNDO, IDR_FILEDROPDOWN, TRUE);
	
	// Add a drop down to button
	m_wndToolBar.AddDropDownButton(
		ID_EDIT_REDO, IDR_FILEDROPDOWN, TRUE);

	m_pComboBox = (CComboBox*)m_wndToolBar.InsertControl(
		RUNTIME_CLASS(CComboBox), _T(""), CRect(-200,-200,0,0), ID_COMBOBOX,
		WS_CHILD | CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | CBS_HASSTRINGS );

	for (int i = 0; i < 5; ++i) {
		CString str;
		str.Format(_T("Combo String %d"), i);
		m_pComboBox->AddString(str);
	}
	m_pComboBox->SetCurSel(0);

	// TODO: Remove this if you don't want tool tips or a resizeable toolbar
	m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	// install/load cool menus
	m_menuManager.Install(this);
	m_menuManager.LoadToolbar(IDR_MAINFRAME);

	InitializeDockingWindows();

	return 0;
}

void CMainFrame::OnSelendOkCombo() 
{
	// TODO: Add your control notification handler code here
	AfxMessageBox(_T("Selection Made..."));
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CCJMDIFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CCJMDIFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CCJMDIFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers


BOOL CMainFrame::InitializeDockingWindows()
{
	// Initial size when docked: top, bottom, left, right.
	SetInitialSize(125,125,225,225);

	///////////////////////////////////////////////////
	// Initialize dialog bar m_wndWorkspace
	///////////////////////////////////////////////////
	if (!m_wndWorkspace.Create(this, ID_VIEW_WORKSPACE,
		_T("Workspace"), CSize(200,100), CBRS_LEFT))
	{
		TRACE0("Failed to create dialog bar m_wndWorkspace\n");
		return -1;		// fail to create
	}
	
	// Add the views to the tab control.
	m_wndWorkspace.AddView(_T("Class"),    RUNTIME_CLASS(CTreeViewClass));
	m_wndWorkspace.AddView(_T("Resource"), RUNTIME_CLASS(CTreeViewResource));
	m_wndWorkspace.AddView(_T("Files"),    RUNTIME_CLASS(CTreeViewFile));
	m_wndWorkspace.AddView(_T("Test"),     RUNTIME_CLASS(CFormViewTest));
	
	// Define the image list to use with the tab control
	m_TabImages.Create (IDB_IL_TAB, 16, 1, RGB(0,255,0));
	m_wndWorkspace.SetTabImageList(&m_TabImages);
	
	///////////////////////////////////////////////////
	// Initialize dialog bar m_wndOutput1
	///////////////////////////////////////////////////
	if (!m_wndOutput1.Create(this, ID_VIEW_OUTPUT1,
		_T("Output 1"), CSize(300,100), CBRS_BOTTOM))
	{
		TRACE0("Failed to create dialog bar m_wndOutput1\n");
		return -1;		// fail to create
	}
	
	///////////////////////////////////////////////////
	// Initialize dialog bar m_wndOutput2
	///////////////////////////////////////////////////
	if (!m_wndOutput2.Create(this, ID_VIEW_OUTPUT2,
		_T("Output 2"), CSize(200,100), CBRS_BOTTOM))
	{
		TRACE0("Failed to create dialog bar m_wndOutput2\n");
		return -1;		// fail to create
	}
	
	m_wndWorkspace.SetMenuID(IDR_POPUP);
	m_wndOutput1.SetMenuID(IDR_POPUP);
	m_wndOutput2.SetMenuID(IDR_POPUP);

	m_wndWorkspace.EnableDockingOnSizeBar(CBRS_ALIGN_ANY);
	m_wndOutput1.EnableDockingOnSizeBar(CBRS_ALIGN_ANY);
	m_wndOutput2.EnableDockingOnSizeBar(CBRS_ALIGN_ANY);
	EnableDockingSizeBar(CBRS_ALIGN_ANY);
	DockSizeBar(&m_wndWorkspace);
	DockSizeBar(&m_wndOutput1);
	DockSizeBar(&m_wndOutput2);

	return TRUE;
}

void CMainFrame::OnViewBar1() 
{
	OnBarCheck(ID_VIEW_WORKSPACE);
}

void CMainFrame::OnUpdateViewBar1(CCmdUI* pCmdUI) 
{
	pCmdUI->m_nID = ID_VIEW_WORKSPACE;
	OnUpdateControlBarMenu(pCmdUI);
}

void CMainFrame::OnViewBar2() 
{
	OnBarCheck(ID_VIEW_OUTPUT1);
}

void CMainFrame::OnUpdateViewBar2(CCmdUI* pCmdUI) 
{
	pCmdUI->m_nID = ID_VIEW_OUTPUT1;
	OnUpdateControlBarMenu(pCmdUI);
}
void CMainFrame::OnViewBar3() 
{
	OnBarCheck(ID_VIEW_OUTPUT2);
}

void CMainFrame::OnUpdateViewBar3(CCmdUI* pCmdUI) 
{
	pCmdUI->m_nID = ID_VIEW_OUTPUT2;
	OnUpdateControlBarMenu(pCmdUI);
}

void CMainFrame::OnButton() 
{
	// TODO: Add your command handler code here
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -