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

📄 mainfrm.cpp

📁 深入浅出MFC 的书中源码 我也是找了很久才找到
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class

//



#include "stdafx.h"

#include "ComTest.h"



#include "MainFrm.h"

#include "Splash.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif



/////////////////////////////////////////////////////////////////////////////

// CMainFrame



IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)



BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)

	ON_WM_INITMENU()

	//{{AFX_MSG_MAP(CMainFrame)

		// NOTE - the ClassWizard will add and remove mapping macros here.

		//    DO NOT EDIT what you see in these blocks of generated code !

	ON_WM_CREATE()

	//}}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

	

}



CMainFrame::~CMainFrame()

{

}



int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

	if (CMDIFrameWnd::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

	}



	// 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);



	// CG: The following line was added by the Splash Screen component.
	CSplashWnd::ShowSplashScreen(this);

	return 0;

}



BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)

{

	// TODO: Modify the Window class or styles here by modifying

	//  the CREATESTRUCT cs



	return CMDIFrameWnd::PreCreateWindow(cs);

}



/////////////////////////////////////////////////////////////////////////////

// CMainFrame diagnostics



#ifdef _DEBUG

void CMainFrame::AssertValid() const

{

	CMDIFrameWnd::AssertValid();

}



void CMainFrame::Dump(CDumpContext& dc) const

{

	CMDIFrameWnd::Dump(dc);

}



#endif //_DEBUG



/////////////////////////////////////////////////////////////////////////////

// CMainFrame message handlers



void CMainFrame::OnInitMenu(CMenu* pMenu)

{

   CMDIFrameWnd::OnInitMenu(pMenu);

  

	// CG: This block added by 'Tip of the Day' component.

	{

		// TODO: This code adds the "Tip of the Day" menu item

		// on the fly.  It may be removed after adding the menu

		// item to all applicable menu items using the resource

		// editor.



		// Add Tip of the Day menu item on the fly!

		static CMenu* pSubMenu = NULL;



		CString strHelp; strHelp.LoadString(CG_IDS_TIPOFTHEDAYHELP);

		CString strMenu;

		int nMenuCount = pMenu->GetMenuItemCount();

		BOOL bFound = FALSE;

		for (int i=0; i < nMenuCount; i++) 

		{

			pMenu->GetMenuString(i, strMenu, MF_BYPOSITION);

			if (strMenu == strHelp)

			{ 

				pSubMenu = pMenu->GetSubMenu(i);

				bFound = TRUE;

				ASSERT(pSubMenu != NULL);

			}

		}



		CString strTipMenu;

		strTipMenu.LoadString(CG_IDS_TIPOFTHEDAYMENU);

		if (!bFound)

		{

			// Help menu is not available. Please add it!

			if (pSubMenu == NULL) 

			{

				// The same pop-up menu is shared between mainfrm and frame 

				// with the doc.

				static CMenu popUpMenu;

				pSubMenu = &popUpMenu;

				pSubMenu->CreatePopupMenu();

				pSubMenu->InsertMenu(0, MF_STRING|MF_BYPOSITION, 

					CG_IDS_TIPOFTHEDAY, strTipMenu);

			} 

			pMenu->AppendMenu(MF_STRING|MF_BYPOSITION|MF_ENABLED|MF_POPUP, 

				(UINT)pSubMenu->m_hMenu, strHelp);

			DrawMenuBar();

		} 

		else

		{      

			// Check to see if the Tip of the Day menu has already been added.

			pSubMenu->GetMenuString(0, strMenu, MF_BYPOSITION);



			if (strMenu != strTipMenu) 

			{

				// Tip of the Day submenu has not been added to the 

				// first position, so add it.

				pSubMenu->InsertMenu(0, MF_BYPOSITION);  // Separator

				pSubMenu->InsertMenu(0, MF_STRING|MF_BYPOSITION, 

					CG_IDS_TIPOFTHEDAY, strTipMenu);

			}

		}

	}



}

⌨️ 快捷键说明

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