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

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

?? workspace.cpp

?? 功能: 實現目錄樹中文件夾
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// WorkSpace.cpp : implementation file
//

#include "stdafx.h"
#include "MyFolder.h"
#include "WorkSpace.h"
#include "FolderNameDialog.h"
#include "OpenMultiFileDlg.h"
//#include "Folder.h"
//#include "FolderTree.h"
#include "Mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#define IDS_PROJECT_COUNT               61205

#endif

/////////////////////////////////////////////////////////////////////////////
// CWorkSpace

IMPLEMENT_DYNCREATE(CWorkSpace, CTreeView)

CWorkSpace::CWorkSpace()
{
		m_hDragItem = 0;//拖動文件變量      (根據約定,mfc庫非靜態類數據成員以m_開頭)
}

CWorkSpace::~CWorkSpace()
{
	SaveStockFile();
//	DeleteContents();
}


BEGIN_MESSAGE_MAP(CWorkSpace, CTreeView)
	//{{AFX_MSG_MAP(CWorkSpace)
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_NEW_ROOT_FOLDER, OnNewRootFolder)
	ON_WM_CREATE()
	ON_COMMAND(ID_NEW_FOLDER, OnNewFolder)
	ON_COMMAND(ID_ADD_FILE, OnAddFile)
	ON_WM_LBUTTONUP()
	ON_COMMAND(ID_WORKSPCE_BAR, OnHideWorkSpace)
	ON_UPDATE_COMMAND_UI(ID_WORKSPCE_BAR, OnUpdateWorkspceBar)
	ON_COMMAND(ID_DEL_WORKSPACE_ITEM, OnDelWorkspaceItem)
	ON_NOTIFY_REFLECT(TVN_BEGINDRAG, OnBegindrag)
	ON_WM_LBUTTONDOWN()
	ON_WM_MOUSEMOVE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWorkSpace drawing

void CWorkSpace::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CWorkSpace diagnostics

#ifdef _DEBUG
void CWorkSpace::AssertValid() const
{
	CTreeView::AssertValid();
}

void CWorkSpace::Dump(CDumpContext& dc) const
{
	CTreeView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CWorkSpace message handlers







void CWorkSpace::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	UINT uFlag = 0;
  HTREEITEM hTreeItem = m_pTreeCtrl->HitTest(point, &uFlag);//獲取點擊的節點信息(handle)

	CMenu menu;
  if(hTreeItem && (uFlag & TVHT_ONITEM))//如果結點存在
	{
		m_pTreeCtrl->Select(hTreeItem, TVGN_CARET);//將結點信息賦給hTreeItem
		CString strFileName = m_pTreeCtrl->GetItemText(hTreeItem);//將節點名稱賦給strFileName
		CFolder* pFolder= (CFolder*)m_pTreeCtrl->GetItemData(hTreeItem);//獲取結點Data
		if(pFolder->IsFolder(strFileName))//選中文件夾
			VERIFY(menu.LoadMenu(IDR_WORKSPACE_FOLDER));//右鍵彈出IDR_WORKSPACE_FOLDER菜單
		else//選中File
			VERIFY(menu.LoadMenu(IDR_WORKSPACE_FILE));//右鍵彈出IDR_WORKSPACE_FILE菜單
	}
	else//選中空白

	VERIFY(menu.LoadMenu(IDR_WORKSPACE));//右鍵IDR_WORKSPACE菜單
	CMenu* pPopup = menu.GetSubMenu(0);//彈出右鍵菜單
    ASSERT(pPopup != NULL);
    ClientToScreen(&point);//邏輯坐標轉為屏幕坐標
	pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, 
		point.x, point.y, AfxGetMainWnd());//彈出右鍵	

}

void CWorkSpace::OnNewRootFolder() 
{
	CString strFolderName;
	int nCount = m_FolderLi.GetCount();//獲取“工程”個數
	strFolderName.Format(IDS_PROJECT_COUNT, nCount + 1);

	CFolderNameDialog Dlg;//彈出CFolderNameDlg對話框
	Dlg.m_strFolderName = strFolderName; //給m_strFolderName賦值
	if(Dlg.DoModal() == IDCANCEL)//點擊“取消”則返回
		return;

	strFolderName = Dlg.m_strFolderName;
	CFolder* pChileFolder = new CFolder(strFolderName);

	m_FolderLi.AddTail(pChileFolder);
	m_pTreeCtrl->FillItem(pChileFolder);
//	m_bIsDirty = TRUE;//文件修改
}

BOOL CWorkSpace::PreCreateWindow(CREATESTRUCT& cs)
{
	cs.style |= TVS_HASBUTTONS | TVS_HASLINES | 
		TVS_LINESATROOT |TVS_SHOWSELALWAYS | TVS_TRACKSELECT;

	return CTreeView::PreCreateWindow(cs);
}

int CWorkSpace::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CTreeView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	m_pTreeCtrl = (CFolderTree*)&GetTreeCtrl();
	m_ImageList.Create(IDB_FOLDER_BMP, 16, 1, RGB(0,255,0));
	m_pTreeCtrl->SetImageList(&m_ImageList, TVSIL_NORMAL);


	CFolder* pFolder = NULL;

	if(m_strStockName.IsEmpty())
	{
	CString m_strPath;
	HINSTANCE hInst = ::AfxGetInstanceHandle();
	TCHAR szMyPath[_MAX_PATH];
	::GetModuleFileName(hInst, szMyPath, _MAX_PATH);//取得應用程序的全部路徑文件名稱,如:“F:\ReportTable\ReportTable.exe”
	m_strPath = CString(szMyPath);
	//去掉模塊的文件名
	int nPos = m_strPath.ReverseFind(_T('\\'));
	m_strPath = m_strPath.Left(nPos+1);//求得應用程序所在目錄,如:“C:\ReportTable\”
    m_strStockName = m_strPath+"stock.sto";
	}
	OpenStockFile();
	POSITION pos = m_FolderLi.GetHeadPosition();
	while (pos != NULL)
	{
		pFolder = (CFolder*)m_FolderLi.GetNext(pos);
		m_pTreeCtrl->FillItem(pFolder);
	}

	return 0;
}

void CWorkSpace::OnNewFolder() 
{
	CString strFolderName;//定義CString對象strFolderName(文件夾路徑)
	strFolderName.LoadString(IDS_NEW_FOLDER);//存儲ID號(表示“新文件夾”)
	HTREEITEM hTreeItem = m_pTreeCtrl->GetSelectedItem();//得到當前點擊節點信息(沒獲得返回0)(handl)
	//if(!hTreeItem)
   // strFolderName = CString("Project");//如果不是節點,則strFolderName=工程,建立新工程
	CFolderNameDialog Dlg;
	Dlg.m_strFolderName = strFolderName;//彈出CFolderNameDlg對話框
	if(Dlg.DoModal() == IDCANCEL)//不建立新文件夾
		return;

//	m_bIsDirty = TRUE;//文件修改
	strFolderName = Dlg.m_strFolderName;//strFolderName為對話框中m_strFolderName名字
	CFolder* pFolder = NULL;//pFolder指針清空
	CFolder* pChileFolder = new CFolder(strFolderName);//為strFolderName動態分配內存

/**if(!hTreeItem)
	{
		m_FolderList.AddTail(pChileFolder);

		m_pTreeCtrl->FillItem(pChileFolder, NULL);
		return;
	}
**/	
	pFolder = (CFolder*)m_pTreeCtrl->GetItemData(hTreeItem);//獲取結點Data
	pFolder->AddFolder(pChileFolder);

	TV_INSERTSTRUCT TreeCtrlItem;//定義TreeCtrlItem
	TreeCtrlItem.hParent = hTreeItem;//定義父親節點(父親結點為鼠標選中的文件夾)

	TreeCtrlItem.hInsertAfter = TVI_LAST;//在最后位置插人節點
	TreeCtrlItem.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_PARAM | TVIF_SELECTEDIMAGE;
//激活上述屬性
	TreeCtrlItem.hParent = hTreeItem;
	TreeCtrlItem.item.pszText = strFolderName.GetBuffer(strFolderName.GetLength());//得到文件名
	strFolderName.ReleaseBuffer();//釋放GetBuffer
	TreeCtrlItem.item.iImage = 0;//選取一個新建文件夾圖象
	TreeCtrlItem.item.iSelectedImage = 1;//選中該節點時的圖象
	TreeCtrlItem.item.lParam = (LPARAM)pChileFolder;

	m_pTreeCtrl->InsertItem(&TreeCtrlItem);//插入節點
	m_pTreeCtrl->Expand(hTreeItem, TVE_EXPAND);	//擴充列表	
	
}

void CWorkSpace::OnAddFile() 
{
	COpenMultiFileDlg dlgFile(TRUE);//打開COpenMultiFileDlg對話框選取增加的文件
	CString title,strFilter;//定義title,strFilter,strDefault
	VERIFY(title.LoadString(AFX_IDS_OPENFILE));//將AFX_IDS_OPENFILE讀進title
	
	strFilter+="MyFolder 文件(*.my)";
	strFilter+=(TCHAR)'\0';//next string please
	strFilter+=_T("*.ost");
	strFilter+=(TCHAR)'\0';//last string
	strFilter+="所有文件(*.*)";
	strFilter+=(TCHAR)'\0';//next string please
	strFilter+=_T("*.*");
	strFilter+=(TCHAR)'\0';//last string

	dlgFile.m_ofn.nMaxCustFilter++;
	dlgFile.m_ofn.lpstrFilter=strFilter;
	dlgFile.m_ofn.lpstrTitle=title;
	dlgFile.m_ofn.hwndOwner=AfxGetMainWnd()->GetSafeHwnd();
	
	if(dlgFile.DoModal()==IDOK)//如果點擊對話眶中“ok”按鈕
	{
	POSITION pos=dlgFile.GetStartPosition();//獲取當前的路徑
		CString strName;//定義strName
	
		while (pos!=NULL)//如果當前路徑不為空,即有文件存在
		{	
		strName = dlgFile.GetNextPathName(pos);//獲取文件完整路徑

			AddFileName(strName);//增加文件名到目錄樹,將路徑傳遞給AddFileName函數 
		}

	}	
}
void CWorkSpace::AddFileName(CString strPathName) //增加文件名到目錄樹函數

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线一区二区视频| 成人免费的视频| 一区二区在线观看av| 国产色一区二区| 26uuu精品一区二区在线观看| 日韩一区二区三区观看| 日韩一区二区三区三四区视频在线观看 | 99riav一区二区三区| 国产一区二区按摩在线观看| 国产综合色精品一区二区三区| 国产一区美女在线| 国产精品亚洲第一区在线暖暖韩国| 激情图区综合网| 国产成人鲁色资源国产91色综| 国产毛片精品一区| 成人午夜视频福利| 91成人看片片| 91超碰这里只有精品国产| 欧美videos中文字幕| 中文字幕va一区二区三区| 亚洲人成在线播放网站岛国| 五月激情丁香一区二区三区| 精品一区二区在线观看| 成人午夜碰碰视频| 欧美日韩高清不卡| 久久久久久久久久看片| 中文字幕亚洲电影| 天堂午夜影视日韩欧美一区二区| 久久99久久久欧美国产| 成人不卡免费av| 欧美精品亚洲二区| 欧美经典一区二区| 亚洲成a人片在线观看中文| 久久国产尿小便嘘嘘尿| av男人天堂一区| 欧美一区二区三区小说| 中文字幕不卡在线播放| 无吗不卡中文字幕| 成人av电影在线网| 日韩欧美亚洲国产精品字幕久久久| 日本一区二区不卡视频| 日韩中文字幕一区二区三区| heyzo一本久久综合| 欧美一区二区三区视频免费播放| 欧美国产日韩精品免费观看| 天堂影院一区二区| 97精品电影院| 久久精品视频一区二区三区| 亚洲第一会所有码转帖| 不卡在线视频中文字幕| 日韩精品在线看片z| 亚洲福利电影网| a在线欧美一区| 国产丝袜美腿一区二区三区| 天使萌一区二区三区免费观看| 成人黄页在线观看| 欧美精品一区二区三| 丝袜美腿亚洲一区二区图片| 91在线丨porny丨国产| 国产亚洲成av人在线观看导航 | 韩国成人在线视频| 欧美无砖砖区免费| 亚洲免费大片在线观看| 成人免费毛片a| 久久久久久亚洲综合影院红桃| 亚洲大片一区二区三区| 色噜噜狠狠色综合欧洲selulu| 国产亚洲精品7777| 国产精品亚洲综合一区在线观看| 日韩一区二区三区免费看| 午夜婷婷国产麻豆精品| 欧美亚洲动漫精品| 亚洲一区二区不卡免费| 欧美午夜影院一区| 午夜视频在线观看一区二区| 欧美日韩精品一区二区在线播放| 亚洲人成小说网站色在线| 国产精品一区二区久久不卡| 久久久久久麻豆| 国产一区高清在线| 精品久久久久香蕉网| 国产乱码精品一品二品| 国产亚洲精品资源在线26u| 国产专区欧美精品| 中文字幕 久热精品 视频在线| 粉嫩av亚洲一区二区图片| 国产女同互慰高潮91漫画| 99热精品一区二区| 亚洲乱码中文字幕综合| 欧美亚洲图片小说| 一区二区三区成人| 欧美日韩三级在线| 久久国内精品自在自线400部| 精品毛片乱码1区2区3区| 国产精品综合av一区二区国产馆| 国产欧美va欧美不卡在线| 色综合久久久久久久| 亚洲高清视频中文字幕| 日韩精品一区二区三区四区| 国产精品一卡二卡| 一区二区三区中文字幕| 日韩欧美中文字幕公布| 国产成人av一区二区三区在线| 国产精品丝袜黑色高跟| 欧美亚洲动漫精品| 国产精品一区在线观看乱码| 亚洲精品国产一区二区三区四区在线| 欧美三级蜜桃2在线观看| 久久精品国产99国产精品| 国产精品美女久久久久久| 欧美午夜一区二区三区| 久久av老司机精品网站导航| 久久九九国产精品| 欧美高清视频不卡网| 高清在线观看日韩| 五月激情丁香一区二区三区| 国产精品麻豆网站| 日韩一区二区免费在线观看| 大白屁股一区二区视频| 亚洲一二三四区| 欧美国产欧美综合| 在线不卡免费av| zzijzzij亚洲日本少妇熟睡| 精品影视av免费| 亚洲成人综合在线| 国产精品国产三级国产| 精品乱码亚洲一区二区不卡| 欧美午夜精品久久久久久超碰| 成人精品国产一区二区4080| 久久99热这里只有精品| 亚洲超丰满肉感bbw| 亚洲色图一区二区| 久久亚洲私人国产精品va媚药| 精品污污网站免费看| 色哟哟欧美精品| 成人一区二区三区视频在线观看| 免费看日韩a级影片| 亚洲超碰精品一区二区| 亚洲女同ⅹxx女同tv| 日本一区二区免费在线观看视频| 日韩精品一区二区三区在线| 91精品国产综合久久精品| 欧美色综合天天久久综合精品| av午夜精品一区二区三区| 国产91精品精华液一区二区三区| 美女www一区二区| 欧美aⅴ一区二区三区视频| 丝袜美腿亚洲综合| 日韩二区三区在线观看| 五月婷婷色综合| 男男视频亚洲欧美| 麻豆精品一二三| 免费久久99精品国产| 美腿丝袜亚洲一区| 久久草av在线| 国产精品自拍毛片| 国产很黄免费观看久久| 国产成人aaaa| 99久久精品国产麻豆演员表| 波多野结衣视频一区| 成人小视频免费观看| 成人精品国产福利| 99精品久久免费看蜜臀剧情介绍| 国产91精品精华液一区二区三区 | 91国产成人在线| 欧美综合欧美视频| 欧美日韩中字一区| 欧美电影免费观看高清完整版在线观看 | 久久久无码精品亚洲日韩按摩| 欧美电影一区二区| 日韩午夜在线观看视频| 日韩免费观看高清完整版 | 日本vs亚洲vs韩国一区三区二区| 偷拍自拍另类欧美| 日韩精品久久久久久| 日韩av中文字幕一区二区三区| 欧美96一区二区免费视频| 老司机午夜精品| 国产jizzjizz一区二区| 99v久久综合狠狠综合久久| 欧美日韩中字一区| 久久综合九色欧美综合狠狠| 国产亚洲人成网站| 亚洲女女做受ⅹxx高潮| 日韩电影在线免费观看| 成人精品小蝌蚪| 欧美在线视频你懂得| 精品动漫一区二区三区在线观看| 国产欧美精品国产国产专区| 亚洲二区视频在线| 久久精品国产亚洲a| 国产成人av影院| 欧美电影一区二区三区| 国产精品对白交换视频| 午夜亚洲国产au精品一区二区| 国内精品免费在线观看| 色噜噜狠狠成人网p站| 久久久av毛片精品| 亚洲一区二区视频| 成人精品一区二区三区中文字幕|