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

📄 scribble.cpp

📁 深入浅出MFC 的书中源码 我也是找了很久才找到
💻 CPP
字号:
// Scribble.cpp : Defines the class behaviors for the application.

//



#include "stdafx.h"

#include "Scribble.h"



#include "MainFrm.h"

#include "ChildFrm.h"

#include "ScribbleDoc.h"

#include "ScribbleView.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif



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

// CScribbleApp



BEGIN_MESSAGE_MAP(CScribbleApp, CWinApp)

	//{{AFX_MSG_MAP(CScribbleApp)

	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)

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

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

	//}}AFX_MSG_MAP

	// Standard file based document commands

	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)

	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)

	// Standard print setup command

	ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)

END_MESSAGE_MAP()



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

// CScribbleApp construction



CScribbleApp::CScribbleApp()

{

	// TODO: add construction code here,

	// Place all significant initialization in InitInstance

}



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

// The one and only CScribbleApp object



CScribbleApp theApp;



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

// CScribbleApp initialization



BOOL CScribbleApp::InitInstance()

{

	// Standard initialization

	// If you are not using these features and wish to reduce the size

	//  of your final executable, you should remove from the following

	//  the specific initialization routines you do not need.



#ifdef _AFXDLL

	Enable3dControls();			// Call this when using MFC in a shared DLL

#else

	Enable3dControlsStatic();	// Call this when linking to MFC statically

#endif



	LoadStdProfileSettings();  // Load standard INI file options (including MRU)



	// Register the application's document templates.  Document templates

	//  serve as the connection between documents, frame windows and views.



	CMultiDocTemplate* pDocTemplate;

	pDocTemplate = new CMultiDocTemplate(

		IDR_SCRIBTYPE,

		RUNTIME_CLASS(CScribbleDoc),

		RUNTIME_CLASS(CChildFrame), // custom MDI child frame

		RUNTIME_CLASS(CScribbleView));

	AddDocTemplate(pDocTemplate);



	// create main MDI Frame window

	CMainFrame* pMainFrame = new CMainFrame;

	if (!pMainFrame->LoadFrame(IDR_MAINFRAME))

		return FALSE;

	m_pMainWnd = pMainFrame;



	// Enable drag/drop open

	m_pMainWnd->DragAcceptFiles();



	// Enable DDE Execute open

	EnableShellOpen();

	RegisterShellFileTypes(TRUE);



	// Parse command line for standard shell commands, DDE, file open

	CCommandLineInfo cmdInfo;

	ParseCommandLine(cmdInfo);



	// Dispatch commands specified on the command line

	if (!ProcessShellCommand(cmdInfo))

		return FALSE;



	// The main window has been initialized, so show and update it.

	pMainFrame->ShowWindow(m_nCmdShow);

	pMainFrame->UpdateWindow();



	// TRACE("Hello Debugger \n");

	// int i = 10;

	// afxDump << "Hello Debugger again" << i << "\n";



	return TRUE;

}



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

// CAboutDlg dialog used for App About



class CAboutDlg : public CDialog

{

public:

	CAboutDlg();



// Dialog Data

	//{{AFX_DATA(CAboutDlg)

	enum { IDD = IDD_ABOUTBOX };

	//}}AFX_DATA



	// ClassWizard generated virtual function overrides

	//{{AFX_VIRTUAL(CAboutDlg)

	protected:

	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

	//}}AFX_VIRTUAL



// Implementation

protected:

	//{{AFX_MSG(CAboutDlg)

		// No message handlers

	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()

};



CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

	//{{AFX_DATA_INIT(CAboutDlg)

	//}}AFX_DATA_INIT

}



void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

	CDialog::DoDataExchange(pDX);

	//{{AFX_DATA_MAP(CAboutDlg)

	//}}AFX_DATA_MAP

}



BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

	//{{AFX_MSG_MAP(CAboutDlg)

		// No message handlers

	//}}AFX_MSG_MAP

END_MESSAGE_MAP()



// App command to run the dialog

void CScribbleApp::OnAppAbout()

{

	CAboutDlg aboutDlg;

	aboutDlg.DoModal();

}



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

// CScribbleApp commands

⌨️ 快捷键说明

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