// 00aMFCSDI.cpp : 定義應用程式的類別行為。
//

#include "stdafx.h"
#include "00aMFCSDI.h"
#include "MainFrm.h"

#include "00aMFCSDIDoc.h"
#include "00aMFCSDIView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CMy00aMFCSDIApp

BEGIN_MESSAGE_MAP(CMy00aMFCSDIApp, CWinApp)
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
	// 依據文件命令的標準檔案
	ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
	ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
	// 標準列印設定命令
	ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()


// CMy00aMFCSDIApp 建構

CMy00aMFCSDIApp::CMy00aMFCSDIApp()
{
	// TODO: 在此處加入建構程式碼，
	// 在 InitInstance 中放置所有的顯著性初始設定
}


// 僅有的一個 CMy00aMFCSDIApp 物件

CMy00aMFCSDIApp theApp;

// CMy00aMFCSDIApp 初始設定

BOOL CMy00aMFCSDIApp::InitInstance()
{
	// 假如應用程式資訊清單指定使用 ComCtl32.dll 6.0 版或更新版本
	// 以啟用視覺化樣式，則 Windows XP 需要 InitCommonControls()。否則的話，
	// 任何視窗的建立將失敗。
	InitCommonControls();

	CWinApp::InitInstance();

	// 初始化 OLE 程式庫
	if (!AfxOleInit())
	{
		AfxMessageBox(IDP_OLE_INIT_FAILED);
		return FALSE;
	}
	AfxEnableControlContainer();
	// 標準初始設定
	// 如果您不使用這些功能且想要減少最終執行檔的大小，您應該從下列
	// 移除不需要的初始化常式，變更儲存我們設定值的登錄機碼
	// TODO: 您應該修改此字串，使如公司 (或組織) 的名稱符合現況
	SetRegistryKey(_T("本機 AppWizard 所產生的應用程式"));
	LoadStdProfileSettings(4);  // 載入標準 INI 檔選項 (包含 MRU)
	// 登錄應用程式的文件範本。文件範本負責在文件、框架視窗與檢視間進行連接
	CSingleDocTemplate* pDocTemplate;
	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CMy00aMFCSDIDoc),
		RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架視窗
		RUNTIME_CLASS(CMy00aMFCSDIView));
	AddDocTemplate(pDocTemplate);
	// 剖析標準 Shell 命令、DDE、檔案開啟舊檔的命令列
	CCommandLineInfo cmdInfo;
	ParseCommandLine(cmdInfo);
	// 在命令列中指定的分派命令。如果已使用 /RegServer、/Register、/Unregserver
	// 或 /Unregister 啟動應用程式，將傳回 FALSE
	if (!ProcessShellCommand(cmdInfo))
		return FALSE;
	// 僅初始化一個視窗，所以顯示並更新該視窗
	m_pMainWnd->ShowWindow(SW_SHOW);
	m_pMainWnd->UpdateWindow();
	// 只有在 SDI 應用程式中有後置字元時，才呼叫 DragAcceptFiles
	// 這會發生於 ProcessShellCommand 之後
	return TRUE;
}



// 對 App About 使用 CAboutDlg 對話方塊

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// 對話方塊資料
	enum { IDD = IDD_ABOUTBOX };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支援

// 程式碼實作
protected:
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()

// 執行對話方塊的應用程式命令
void CMy00aMFCSDIApp::OnAppAbout()
{
	CAboutDlg aboutDlg;
	aboutDlg.DoModal();
}


// CMy00aMFCSDIApp 訊息處理常式

