亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? multimru.cpp

?? C++教程的配套源碼 C++教程的配套源碼
?? CPP
字號:
// MultiMRU.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "MultiMRU.h"

#include "MainFrm.h"
#include "MultiMRUDoc.h"
#include "MultiMRUView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMultiMRUApp

AFX_STATIC_DATA const TCHAR *_afxFileSection[NUM_FILTER] = {_T("Recent BMP File List"),_T("Recent JPG File List")};//注冊表中"最近BMP文件"和"最近JPG文件"的主鍵名;
AFX_STATIC_DATA const TCHAR *_afxFileEntry[NUM_FILTER] = {_T("BMPFile%d"),_T("JPGFile%d")};//注冊表中每一文件項的鍵名;
AFX_STATIC_DATA const TCHAR _afxPreviewSection[] = _T("Settings");
AFX_STATIC_DATA const TCHAR _afxPreviewEntry[] = _T("PreviewPages");

BEGIN_MESSAGE_MAP(CMultiMRUApp, CWinApp)
	//{{AFX_MSG_MAP(CMultiMRUApp)
	ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
        //添加最近文件列表菜單消息映射
	ON_UPDATE_COMMAND_UI(ID_FILE_MRU_BMP_FILE1, OnUpdateRecentBMPFileMenu)
	ON_COMMAND_EX_RANGE(ID_FILE_MRU_BMP_FILE1, ID_FILE_MRU_BMP_FILE16, OnOpenRecentBMPFile)
	ON_UPDATE_COMMAND_UI(ID_FILE_MRU_JPG_FILE1, OnUpdateRecentJPGFileMenu)
	ON_COMMAND_EX_RANGE(ID_FILE_MRU_JPG_FILE1, ID_FILE_MRU_JPG_FILE16, OnOpenRecentJPGFile)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CMultiMRUApp construction

CMultiMRUApp::CMultiMRUApp()
{
	for(int i=0;i<NUM_FILTER;i++)
	  m_pRecentFileList[i]=NULL;
        //初始化擴展名數組;
	 szExt[0]=".BMP";
     szExt[1]=".JPG";
}

CMultiMRUApp::~CMultiMRUApp()
{      
        //釋放內存;
	for(int i=0;i<NUM_FILTER;i++)
		if(m_pRecentFileList[i])
			delete m_pRecentFileList[i];
	
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CMultiMRUApp object

CMultiMRUApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CMultiMRUApp initialization

BOOL CMultiMRUApp::InitInstance()
{
	AfxEnableControlContainer();

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

	// Change the registry key under which our settings are stored.
	// TODO: You should modify this string to be something appropriate
	// such as the name of your company or organization.
	SetRegistryKey(_T("Local AppWizard-Generated Applications"));

	LoadStdProfileSettings(5);  // 載入標準INI文件選項(包括MRU),函數參數為最大文件數 0=<nMaxMRU<=16;

	// Register the application's document templates.  Document templates
	//  serve as the connection between documents, frame windows and views.

	CSingleDocTemplate* pDocTemplate;
	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CMultiMRUDoc),
		RUNTIME_CLASS(CMainFrame),       // main SDI frame window
		RUNTIME_CLASS(CMultiMRUView));
	AddDocTemplate(pDocTemplate);

	// 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 one and only window has been initialized, so show and update it.
	m_pMainWnd->ShowWindow(SW_SHOW);
	m_pMainWnd->UpdateWindow();

	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 CMultiMRUApp::OnAppAbout()
{
	CAboutDlg aboutDlg;
	aboutDlg.DoModal();
}

/////////////////////////////////////////////////////////////////////////////
// CMultiMRUApp message handlers
CString CMultiMRUApp::GetExtension(int nIndex)
{
	CString szRes;
	szRes=szExt[nIndex-1];//注意索引值與下標相差一;

	return szRes;
} 
void CMultiMRUApp::OnUpdateRecentBMPFileMenu(CCmdUI* pCmdUI) 
{
	ASSERT_VALID(this);

	if(pCmdUI->m_pSubMenu!=NULL)//此時更新"File"菜單的顯示;
	{
		
		BOOL bEnable=FALSE;
		if (m_pRecentFileList[0] != NULL)
			{
				bEnable=TRUE;
			}
		 pCmdUI->m_pMenu->EnableMenuItem(pCmdUI->m_nIndex, MF_BYPOSITION | 
                (bEnable ? MF_ENABLED : (MF_DISABLED | MF_GRAYED)));      
         return;	
	
	}
	else    //此時更新文件列表表項的顯示;
		m_pRecentFileList[0]->UpdateMenu(pCmdUI);

}

void CMultiMRUApp::OnUpdateRecentJPGFileMenu(CCmdUI* pCmdUI) 
{
	ASSERT_VALID(this);
	if(pCmdUI->m_pSubMenu!=NULL)  //此時更新"File"菜單的顯示;
	{
		BOOL bEnable=FALSE;
		if (m_pRecentFileList[1] != NULL)
			{
				bEnable=TRUE;
			}
		 pCmdUI->m_pMenu->EnableMenuItem(pCmdUI->m_nIndex, MF_BYPOSITION | 
                (bEnable ? MF_ENABLED : (MF_DISABLED | MF_GRAYED)));      
         return;	
	
	}
	else    //此時更新文件列表表項的顯示;
		m_pRecentFileList[1]->UpdateMenu(pCmdUI);

}

BOOL CMultiMRUApp::OnOpenRecentBMPFile(UINT nID)
{
	ASSERT_VALID(this);
	ASSERT(m_pRecentFileList[0] != NULL);

	ASSERT(nID >= ID_FILE_MRU_BMP_FILE1);
	ASSERT(nID < ID_FILE_MRU_BMP_FILE1 + (UINT)m_pRecentFileList[0]->GetSize());
	int nIndex = nID - ID_FILE_MRU_BMP_FILE1;
	ASSERT((*m_pRecentFileList[0])[nIndex].GetLength() != 0);

	TRACE2("MRU: open file (%d) '%s'.\n", (nIndex) + 1,
			(LPCTSTR)(*m_pRecentFileList[0])[nIndex]);
   //打開相應的BMP文件;
	if (OpenDocumentFile((*m_pRecentFileList[0])[nIndex]) == NULL)
		m_pRecentFileList[0]->Remove(nIndex);

	return TRUE;
}

BOOL CMultiMRUApp::OnOpenRecentJPGFile(UINT nID)
{
	ASSERT_VALID(this);
	ASSERT(m_pRecentFileList[1] != NULL);

	ASSERT(nID >= ID_FILE_MRU_JPG_FILE1);
	ASSERT(nID < ID_FILE_MRU_JPG_FILE1 + (UINT)m_pRecentFileList[1]->GetSize());
	int nIndex = nID - ID_FILE_MRU_JPG_FILE1;
	ASSERT((*m_pRecentFileList[1])[nIndex].GetLength() != 0);

	TRACE2("MRU: open file (%d) '%s'.\n", (nIndex) + 1,
			(LPCTSTR)(*m_pRecentFileList[1])[nIndex]);
    
	//打開相應的JPG文件;
	if (OpenDocumentFile((*m_pRecentFileList[1])[nIndex]) == NULL)
		m_pRecentFileList[1]->Remove(nIndex);

	return TRUE;
}

void CMultiMRUApp::LoadStdProfileSettings(UINT nMaxMRU)
{
	ASSERT_VALID(this);

    for(int i=0;i<NUM_FILTER;i++)
		ASSERT(m_pRecentFileList[i]==NULL);

	if (nMaxMRU != 0)
	{
		// 對每一種擴展名創建CRecentFileList對象,調用ReadList讀入原先的最近文件列表;
		for(int i=0;i<NUM_FILTER;i++)
		{
			m_pRecentFileList[i] = new CRecentFileList(0, _afxFileSection[i], _afxFileEntry[i],
			nMaxMRU);
		    m_pRecentFileList[i]->ReadList();
		}
		
	}
	// 0 by default means not set
	m_nNumPreviewPages = GetProfileInt(_afxPreviewSection, _afxPreviewEntry, 0);
}

//重載保存標準INI文件選項函數;
void CMultiMRUApp::SaveStdProfileSettings()
{
	ASSERT_VALID(this);
   
	for(int i=0;i<NUM_FILTER;i++)
	if (m_pRecentFileList[i] != NULL)
		m_pRecentFileList[i]->WriteList();  //存入注冊表中;

	if (m_nNumPreviewPages != 0)
		WriteProfileInt(_afxPreviewSection, _afxPreviewEntry, m_nNumPreviewPages);
}

void CMultiMRUApp::AddToRecentFileList(LPCTSTR lpszPathName)
{
	
	ASSERT_VALID(this);
	ASSERT(lpszPathName != NULL);
	ASSERT(AfxIsValidString(lpszPathName));
    
	CString strFilterExt;
    for(int i=1;i<=NUM_FILTER;i++)
	{
	 	strFilterExt=GetExtension(i); 
        LPCTSTR lpszDot=_tcsrchr(lpszPathName,'.');
		//如果參數文件的擴展名符合strFilterExt,將其加入相應的最近文件列表;
	    if (lpszDot != NULL && lstrcmpi(lpszDot, strFilterExt) == 0)
		{
        	if (m_pRecentFileList[i-1] != NULL)
			{
				m_pRecentFileList[i-1]->Add(lpszPathName);
				
			}
		}
	}
}

int CMultiMRUApp::ExitInstance() 
{
	//保存標準設置(主要是最近文件列表);
	SaveStdProfileSettings();

	return CWinApp::ExitInstance();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品久久久久久久多人混战| 欧美福利视频一区| 欧美日韩精品一区二区天天拍小说| 日韩亚洲欧美一区| 亚洲精品国产a久久久久久| 国产原创一区二区三区| 884aa四虎影成人精品一区| 国产精品免费久久久久| 国产一区二区导航在线播放| 欧美日韩不卡在线| 一区二区不卡在线视频 午夜欧美不卡在| 久草中文综合在线| 制服.丝袜.亚洲.另类.中文| 一区二区三区中文免费| av色综合久久天堂av综合| 久久精品人人做人人综合| 久久成人免费电影| 日韩欧美的一区二区| 午夜精品福利久久久| 欧美日韩一二区| 亚洲男人的天堂在线观看| 97aⅴ精品视频一二三区| 国产欧美日韩精品一区| 国产精品综合一区二区| 精品欧美久久久| 久久精品国产亚洲a| 欧美一卡二卡在线观看| 视频一区视频二区中文| 7777女厕盗摄久久久| 日韩高清在线不卡| 日韩一区二区电影在线| 久久99精品久久久久久久久久久久| 欧美日韩国产美| 亚洲18影院在线观看| 在线电影一区二区三区| 日韩va亚洲va欧美va久久| 7777精品伊人久久久大香线蕉经典版下载 | 久久精品99国产国产精| 欧美va在线播放| 国产一区不卡视频| 中文字幕欧美日本乱码一线二线| 国产91在线观看丝袜| 国产精品另类一区| 一本一本大道香蕉久在线精品 | 91在线观看视频| 亚洲欧美日韩国产成人精品影院| 91美女在线视频| 视频在线观看国产精品| 精品国产一区二区三区忘忧草| 国产一级精品在线| 中文字幕一区二区视频| 欧美视频在线观看一区二区| 日本一不卡视频| 国产亚洲女人久久久久毛片| 成人av动漫网站| 一区二区三区在线高清| 日韩女优电影在线观看| 成人性生交大片免费看在线播放| 亚洲男人的天堂网| 欧美一级精品在线| 粉嫩高潮美女一区二区三区| 亚洲麻豆国产自偷在线| 欧美女孩性生活视频| 国产精品1区2区3区| 一区二区三区自拍| 欧美一级片在线观看| 不卡一区中文字幕| 日本不卡在线视频| 中文字幕一区二区不卡| 制服视频三区第一页精品| 成人免费高清在线| 蜜桃精品视频在线观看| 日韩伦理av电影| 欧美不卡一区二区| 91福利在线免费观看| 国内精品在线播放| 亚洲h在线观看| 中文字幕在线不卡一区| 欧美大白屁股肥臀xxxxxx| 91视视频在线观看入口直接观看www | 国产一区二区三区四区在线观看 | 久久久久久久久一| 7777精品伊人久久久大香线蕉最新版| 国产乱码一区二区三区| 亚洲成人av在线电影| 国产精品色眯眯| 欧美va在线播放| 欧美日韩情趣电影| 日本丰满少妇一区二区三区| 国产毛片精品视频| 免费高清不卡av| 亚洲午夜在线观看视频在线| 国产精品麻豆欧美日韩ww| 亚洲精品一区二区三区在线观看 | 丝袜脚交一区二区| 亚洲激情图片一区| 成人欧美一区二区三区黑人麻豆 | 在线免费观看视频一区| 国产精品白丝jk白祙喷水网站| 婷婷国产在线综合| 亚洲香蕉伊在人在线观| 亚洲精品欧美二区三区中文字幕| 国产精品欧美极品| 中文字幕二三区不卡| 国产亚洲综合在线| 久久蜜桃一区二区| 精品剧情v国产在线观看在线| 宅男在线国产精品| 91麻豆精品国产| 91精品在线麻豆| 91麻豆精品国产自产在线观看一区| 日本乱人伦aⅴ精品| 99视频一区二区三区| 成人国产精品免费观看动漫| 豆国产96在线|亚洲| 不卡av在线网| 色综合中文字幕| 色综合久久久久综合体| 91丝袜美女网| 91福利视频久久久久| 精品视频免费在线| 在线播放一区二区三区| 日韩一区二区三区免费看 | 捆绑调教一区二区三区| 久久精品国产77777蜜臀| 蓝色福利精品导航| 国产精品一区二区在线播放 | 欧美国产日本视频| 亚洲视频一区在线| 一区二区视频免费在线观看| 亚洲高清久久久| 久久99久久99精品免视看婷婷 | 久久精品日韩一区二区三区| 国产精品久久久久久亚洲伦| 一区二区久久久久久| 午夜精品成人在线视频| 韩国成人福利片在线播放| 国产精品一区二区男女羞羞无遮挡 | 欧美系列在线观看| 日韩欧美国产成人一区二区| 精品国产露脸精彩对白| 一区在线播放视频| 奇米四色…亚洲| 东方aⅴ免费观看久久av| 99久久久精品| 欧美电影影音先锋| 国产欧美精品一区二区色综合朱莉| 中文字幕一区二区三区在线观看| 亚洲成a人v欧美综合天堂| 国产一区高清在线| 色综合久久天天| 2017欧美狠狠色| 亚洲美女一区二区三区| 精品在线你懂的| 91一区二区在线| 欧美哺乳videos| 亚洲免费观看高清| 九九热在线视频观看这里只有精品| 不卡在线观看av| 日韩精品一区二区三区三区免费| 亚洲视频中文字幕| 精彩视频一区二区| 欧美视频在线播放| 中文字幕国产精品一区二区| 日本伊人色综合网| 色播五月激情综合网| 日本一区二区三区四区 | 麻豆freexxxx性91精品| 99久久国产综合精品色伊| 欧美一区中文字幕| 亚洲精品一二三四区| 国产在线播放一区二区三区| 欧美二区乱c少妇| 一二三区精品福利视频| 懂色av一区二区三区蜜臀| 日韩一区二区三区免费看| 亚洲小说欧美激情另类| 99久久夜色精品国产网站| 久久久精品影视| 精品午夜一区二区三区在线观看| 欧美性猛片aaaaaaa做受| 最新成人av在线| 成人性视频免费网站| 国产亚洲综合在线| 久久99精品久久久| 日韩视频一区二区三区在线播放 | 欧美日本在线一区| 亚洲一区二区在线观看视频 | 成人看片黄a免费看在线| 精品国产免费一区二区三区香蕉| 天堂成人免费av电影一区| 欧美日韩一区二区三区四区五区 | 欧美日韩免费一区二区三区| 亚洲精品亚洲人成人网在线播放| 成人在线视频一区二区| 久久久综合视频| 国产精品一区在线观看乱码| 久久亚洲精精品中文字幕早川悠里 | 91香蕉视频黄| 亚洲欧美电影一区二区|