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

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

?? mainfrm.cpp

?? "MagicHouse框架"目錄: 含有MagicHouse的原始框架
?? CPP
字號:
// MainFrm.cpp : CMainFrame 類的實現
//

#include "stdafx.h"
#include "MagicHouse.h"

#include "MainFrm.h"

#include "MagicHouseDoc.h"
#include "MagicHouseView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_NOTIFY(TVN_ITEMEXPANDED, IDC_MYTREECTRL, OnItemexpandedTree)
	ON_NOTIFY(TVN_SELCHANGED, IDC_MYTREECTRL, OnSelchangedTree)
	ON_COMMAND(ID_VIEW_CONTROL, &CMainFrame::OnViewControl)
	ON_UPDATE_COMMAND_UI(ID_VIEW_CONTROL, &CMainFrame::OnUpdateViewControl)
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_INDICATOR_PICNUM,	// 圖片數量
	ID_INDICATOR_PICNAME,	// 當前顯示的圖片文件名
	ID_SEPARATOR,           // 狀態行指示器
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};


// CMainFrame 構造/析構

CMainFrame::CMainFrame()
{
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("未能創建工具欄\n");
		return -1;      // 未能創建
	}

	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("未能創建狀態欄\n");
		return -1;      // 未能創建
	}

	// TODO: 如果不需要工具欄可停靠,則刪除這三行
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);

	CreateCtrlBar();

	return 0;
}

/******************************************************************************
*	作用:		創建控制窗口
*	備注:		控制窗口包括文件目錄和位圖瀏覽兩個窗口,通過
******************************************************************************/
BOOL CMainFrame::CreateCtrlBar(void)
{
	if ( !m_wndCtrlBar.Create(L"控制窗口", this, 100) ) 
	{ 
		TRACE0("未能創建控制窗口\n"); 
		return -1; 
	}

	m_wndCtrlBar.SetBarStyle(m_wndCtrlBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); 

	m_wndCtrlBar.EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndCtrlBar, AFX_IDW_DOCKBAR_LEFT);	// 停靠在左邊

	// 創建一個選項卡控件
	m_TabCtrl.Create(TCS_DOWN | WS_CHILD | WS_VISIBLE, CRect(0,0,100,100), &m_wndCtrlBar, 125);

	// 創建樹型控件
	if (!m_TreeCtrl.Create(WS_CHILD|WS_VISIBLE|
		TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT,
		CRect(0, 0, 0, 0), &m_TabCtrl, IDC_MYTREECTRL))
	{
		TRACE0("創建失敗!\n");
		return -1;
	}

	m_TreeCtrl.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

	DWORD dwStyle = GetWindowLong(m_TreeCtrl.m_hWnd, GWL_STYLE);

	dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;
	SetWindowLong(m_TreeCtrl.m_hWnd, GWL_STYLE, dwStyle);

	m_hRoot = m_TreeCtrl.InsertItem(L"我的電腦");
	InsertLogicalDrives(m_hRoot);
	InsertDriveDir(m_hRoot);
	m_TreeCtrl.Expand(m_hRoot,TVE_EXPAND);

	// 將樹型控件加入到TabCtrl中
	m_TabCtrl.AddPage(&m_TreeCtrl, L"文件目錄", IDI_DIR);
	m_TabCtrl.AddPage(RUNTIME_CLASS(CPrevDlg), IDD_PREV, L"位圖瀏覽", IDI_DIR);
	m_TabCtrl.UpdateWindow();

	return TRUE;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: 在此處通過修改
	//  CREATESTRUCT cs 來修改窗口類或樣式

	cs.style &= ~FWS_ADDTOTITLE;	// 取消MFC自動添加標題的風格

	return TRUE;
}


// CMainFrame 診斷

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

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

#endif //_DEBUG


// CMainFrame 消息處理程序

/******************************************************************************
*	作用:		在指定父節點下插入系統驅動器節點
******************************************************************************/
void CMainFrame::InsertLogicalDrives(HTREEITEM hParent)
{
	DWORD	szAllDriveStrings = GetLogicalDriveStrings(0,NULL);
	LPWSTR	pDriveStrings = new WCHAR[szAllDriveStrings + sizeof(_T(""))];
	LPWSTR	pDel = pDriveStrings;
	GetLogicalDriveStrings(szAllDriveStrings, pDriveStrings);
	size_t szDriveString = wcslen(pDriveStrings);
	while(szDriveString > 0)
	{
		m_TreeCtrl.InsertItem(pDriveStrings, hParent);
		pDriveStrings += szDriveString + 1;
		szDriveString = wcslen(pDriveStrings);
	}

	SAFE_DELETE_ARRAY (pDel);
}

/******************************************************************************
*	作用:		在指定父節點下插入驅動盤下的所有子項
******************************************************************************/
void CMainFrame::InsertDriveDir(HTREEITEM hParent)
{
	HTREEITEM hChild = m_TreeCtrl.GetChildItem(hParent);
	while(hChild)
	{
		CString strText = m_TreeCtrl.GetItemText(hChild);
		if(strText.Right(1) != L"\\")
			strText += L"\\";
		strText += L"*.*";
		CFileFind file;
		BOOL bContinue = file.FindFile(strText);
		while(bContinue)
		{
			bContinue = file.FindNextFile();
			if(!file.IsDots())
				m_TreeCtrl.InsertItem(file.GetFileName(), hChild);
		}
		InsertDriveDir(hChild);
		hChild = m_TreeCtrl.GetNextItem(hChild, TVGN_NEXT);
		file.Close();
	}	
}

/******************************************************************************
*	作用:		在指定父節點下插入目錄下的所有子項
******************************************************************************/
void CMainFrame::AddSubDir(HTREEITEM hParent)
{
	CString strPath = GetFullPath(hParent);
	if(strPath.Right(1) != "\\")
		strPath += "\\";
	strPath += L"*.*";
	CFileFind file;
	BOOL bContinue = file.FindFile(strPath);
	while(bContinue)
	{
		bContinue = file.FindNextFile();
		if( !file.IsDots())
			m_TreeCtrl.InsertItem(file.GetFileName(), hParent);
	}
}

/******************************************************************************
*	作用:		獲取指定節點的全路徑
******************************************************************************/
CString CMainFrame::GetFullPath(HTREEITEM hCurrent)
{
	CString strTemp;
	CString strReturn = L"";
	while(hCurrent != m_hRoot)
	{
		strTemp = m_TreeCtrl.GetItemText(hCurrent);
		if(strTemp.Right(1) != "\\")
			strTemp += L"\\";
		strReturn = strTemp  + strReturn;
		hCurrent = m_TreeCtrl.GetParentItem(hCurrent);
	}

	return strReturn;
}

/******************************************************************************
*	作用:		展開樹視圖的某一項的響應函數
******************************************************************************/
void CMainFrame::OnItemexpandedTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	TVITEM item = pNMTreeView->itemNew;
	if(item.hItem == m_hRoot)
		return;
	HTREEITEM hChild = m_TreeCtrl.GetChildItem(item.hItem);
	while(hChild)
	{
		AddSubDir(hChild);
		hChild = m_TreeCtrl.GetNextItem(hChild,TVGN_NEXT);
	}
	*pResult = 0;
}

/******************************************************************************
*	作用:		獲得指定目錄下所有的圖像文件名
*	參數:		
*		path	指定目錄路徑
*		ary		保存圖像文件名的字符串容器
******************************************************************************/
void CMainFrame::GetAllFileNames(const CString& path, CStringArray& ary)
{
	ary.RemoveAll();

	CFileFind fileFind;
	CString filesPath = path + L"\\*.*";

	if (fileFind.FindFile(filesPath))
	{

		CString strPicPath;
		CString strExt;

		// 如果該目錄還有文件
		while (fileFind.FindNextFile())
		{
			strPicPath = fileFind.GetFileName();
			// 獲取后綴名
			strExt = strPicPath.Right(3);
			strExt.MakeLower();

			// 如果后綴名為bmp,jpg則判斷是圖片文件
			// 此處可以擴充功能
			if (strExt == "bmp" || strExt == "jpg")
				ary.Add(strPicPath);
		}

		strPicPath = fileFind.GetFileName();
		// 獲取后綴名
		strExt = strPicPath.Right(3);
		strExt.MakeLower();

		// 如果后綴名為bmp,jpg則判斷是圖片文件
			// 此處可以擴充功能
		if (strExt == "bmp" || strExt == "jpg")
			ary.Add(strPicPath);
	}

	fileFind.Close();
}

/******************************************************************************
*	作用:		樹視圖選擇改變的響應函數
******************************************************************************/
void CMainFrame::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	TVITEM item = pNMTreeView->itemNew;
	if(item.hItem == m_hRoot)
		return;
	CString str = GetFullPath(item.hItem);
	str = str.Left(str.GetLength() - 1);
	CFileFind fileFile;

	if( fileFile.FindFile(str) )
	{
		CString strExt;

		fileFile.FindNextFile();
		if(!fileFile.IsDirectory() && !fileFile.IsDots())
		{
			strExt = str.Right(3);
			strExt.MakeLower();
		
			// 如果后綴名為bmp,jpg則判斷是圖片文件
			// 此處可以擴充功能
			if (strExt == "bmp" || strExt == "jpg")
			{
				CMagicHouseView* pView = (CMagicHouseView*)GetActiveView();

				pView->ClearOffset();
				pView->OpenFile(str);
				pView->FixOffset();
				pView->RefreshIndicator();
			}
		}
	}
	fileFile.Close();

	*pResult = 0;
}

/******************************************************************************
*	作用:		窗口大小改變的響應函數
******************************************************************************/
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
	CFrameWnd::OnSize(nType, cx, cy);
	CMagicHouseView* pView = (CMagicHouseView*)GetActiveView();

	if (pView != NULL)
	{
		pView->ClearOffset();
		pView->FixOffset();
	}
}


/******************************************************************************
*	作用:		顯示/隱藏“控制窗口”
******************************************************************************/
void CMainFrame::OnViewControl()
{
	BOOL bVisible = ((m_wndCtrlBar.IsWindowVisible()) != 0);

	ShowControlBar(&m_wndCtrlBar, !bVisible, FALSE);
	RecalcLayout();
}

/******************************************************************************
*	作用:		“控制窗口”菜單項的命令更新函數
******************************************************************************/
void CMainFrame::OnUpdateViewControl(CCmdUI *pCmdUI)
{
	BOOL bVisible = ((m_wndCtrlBar.IsWindowVisible()) != 0);
	pCmdUI->SetCheck(bVisible);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久久中文一区二区 | 欧美久久久久久久久| 国产农村妇女毛片精品久久麻豆| 午夜欧美2019年伦理| 亚洲成a天堂v人片| 欧美一区二区在线播放| 亚洲一卡二卡三卡四卡无卡久久 | 在线视频综合导航| 精品久久一区二区| 亚洲高清视频中文字幕| 色综合天天综合网天天狠天天| 国产精品系列在线| 9久草视频在线视频精品| 综合自拍亚洲综合图不卡区| 成人免费看黄yyy456| 国产女人aaa级久久久级| 99视频精品在线| 一区二区日韩av| 538在线一区二区精品国产| 青青草国产精品97视觉盛宴| 亚洲6080在线| 国产肉丝袜一区二区| 97精品超碰一区二区三区| 一区二区三区中文免费| 在线不卡免费av| 国内精品免费**视频| 国产欧美精品区一区二区三区 | 欧美日韩午夜精品| 精品一区二区精品| 椎名由奈av一区二区三区| 欧美最猛黑人xxxxx猛交| 男女男精品网站| 国产美女av一区二区三区| 亚洲狠狠爱一区二区三区| 中文无字幕一区二区三区 | 精品少妇一区二区三区日产乱码| av一二三不卡影片| 国产精品一级在线| 精品一区中文字幕| 亚洲小说欧美激情另类| 中文字幕一区二区三区四区不卡| 日本一区二区免费在线观看视频 | 风间由美中文字幕在线看视频国产欧美| 亚洲一区免费视频| 亚洲欧美视频在线观看视频| 欧美精品一区二区三区蜜桃视频| 欧美在线观看视频在线| 成人黄色av电影| 成人永久看片免费视频天堂| 久久99国产乱子伦精品免费| 亚洲成人免费电影| 午夜免费久久看| 视频一区在线播放| 免费观看日韩av| 免费高清成人在线| 另类小说图片综合网| 日本不卡在线视频| 免费成人在线网站| 国产在线看一区| 国产精品传媒在线| 亚洲第一福利一区| 国内久久精品视频| 成人美女视频在线观看| 色婷婷av一区二区三区之一色屋| 色视频成人在线观看免| 欧美精品粉嫩高潮一区二区| 欧美日韩综合在线| 久久综合丝袜日本网| 国产女同性恋一区二区| 亚洲精品videosex极品| 丝袜美腿亚洲综合| 精品一区二区三区在线观看| 国产精品一二三四| 色一区在线观看| 久久这里只有精品6| 中文字幕一区日韩精品欧美| 日韩不卡一区二区三区 | 亚洲一区二区三区在线播放| 久久精品国产精品亚洲精品| 国产 日韩 欧美大片| 欧美一区二区三区喷汁尤物| 亚洲专区一二三| 午夜电影一区二区| 成人午夜电影网站| 91精品国产综合久久香蕉麻豆| 日韩精品专区在线影院观看| 亚洲人成在线观看一区二区| 九九精品一区二区| 欧美日韩一区二区三区四区五区 | 国产成人午夜视频| 在线播放亚洲一区| 亚洲欧洲国产日韩| 成人性生交大片| 337p粉嫩大胆噜噜噜噜噜91av| 一区二区三区欧美视频| 粉嫩蜜臀av国产精品网站| 日韩三级视频在线观看| 日本伊人色综合网| 欧美嫩在线观看| 丝袜美腿亚洲色图| 欧美日韩免费一区二区三区视频| 日韩理论片网站| 成人av在线资源网| 国产精品私人影院| 国产91精品在线观看| 国产三级精品视频| 国产综合成人久久大片91| 久久综合av免费| 国产精品亚洲一区二区三区在线| 精品国产免费人成电影在线观看四季| 亚洲成人免费看| 91精品国产一区二区人妖| 免费观看成人av| 国产日本欧美一区二区| 成人精品国产免费网站| 一区二区三区成人| 欧美综合欧美视频| 老司机精品视频在线| 国产精品免费视频一区| 日本精品一区二区三区四区的功能| 亚洲视频在线一区观看| 欧美精品在线观看播放| 国产成人精品综合在线观看| 亚洲欧美色综合| 欧美一二三四区在线| 成人免费毛片app| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产视频在线观看一区二区三区| 在线视频亚洲一区| 日本亚洲电影天堂| 一区二区成人在线视频 | 亚洲精品国产高清久久伦理二区| 精品视频资源站| 成人午夜精品在线| 国精产品一区一区三区mba桃花| 一区在线播放视频| 精品国产髙清在线看国产毛片 | 粉嫩蜜臀av国产精品网站| 美女爽到高潮91| 婷婷成人激情在线网| 国产精品久久久久精k8 | 成人免费视频视频| 国产成人aaa| 毛片av一区二区| 一区二区在线免费| 亚洲欧美一区二区三区国产精品 | 高潮精品一区videoshd| 麻豆极品一区二区三区| 午夜精品爽啪视频| 自拍偷在线精品自拍偷无码专区| 亚洲精品网站在线观看| 亚洲手机成人高清视频| 亚洲精品久久久蜜桃| 国产精品久久久久一区| 久久久久久久久久久久电影 | 欧美日韩久久久一区| 99re热视频精品| 成人深夜视频在线观看| 一本在线高清不卡dvd| 欧美性xxxxxx少妇| 日韩视频永久免费| 国产婷婷色一区二区三区 | 五月综合激情婷婷六月色窝| 丝袜诱惑制服诱惑色一区在线观看| 日韩av中文字幕一区二区| 紧缚捆绑精品一区二区| 国产精品88888| 国产成人综合在线观看| 欧美视频在线不卡| 日韩精品中文字幕在线不卡尤物 | 粉嫩aⅴ一区二区三区四区五区| 风流少妇一区二区| 欧美日韩精品三区| 久久久国产一区二区三区四区小说 | 91精品国产一区二区三区蜜臀| 久久天堂av综合合色蜜桃网| 中文字幕乱码日本亚洲一区二区| 午夜视频在线观看一区二区三区| 亚洲免费观看高清完整| 麻豆视频一区二区| 91精品国产综合久久久蜜臀图片 | 欧美不卡一区二区| 亚洲一区在线免费观看| 日本在线不卡视频| 欧美三级资源在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久这里只有精品首页| 偷拍一区二区三区四区| 成人av资源下载| 91精品在线免费观看| 亚洲精品国产a久久久久久| 国产乱一区二区| 91精品国产一区二区人妖| 国产精品久久久久久久久久久免费看 | 亚洲一区二区三区四区在线观看| 国产99久久久久| 国产精品免费av| 91丨九色丨国产丨porny| 亚洲青青青在线视频| 色综合婷婷久久|