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

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

?? folderdlg.cpp

?? windows mobile上很好用的音頻播放器希望大家會喜歡
?? CPP
字號:
//FolderDlg.cpp
#include "GSPlayer2.h"
#include "FolderDlg.h"

CFolderDlg::CFolderDlg()
{
}

CFolderDlg::~CFolderDlg()
{
}

///////////////////////////////////////////////////////////////
void CFolderDlg::OnInitDialog(HWND hDlg)
{
	CTempStr str(IDS_ROOT_FOLDER_NAME);
	ShellInitDialog(hDlg);
	HWND hTreeView = GetDlgItem(hDlg, IDC_TREE_FOLDER);

	m_bRefresh = FALSE;
	m_hImageList = NULL;
	HICON hIcon;

	//僀儊乕僕儕僗僩嶌惉
	m_hImageList = ImageList_Create(16, 16, ILC_COLOR|ILC_MASK, 1, 2);

	hIcon = LoadIcon(GetInst(), (LPCTSTR)IDI_ROOT);
	ImageList_AddIcon(m_hImageList, hIcon);
	DeleteObject(hIcon);

	SHFILEINFO shfi;
	SHGetFileInfo(_T("\\Windows"), NULL, &shfi, sizeof(shfi), SHGFI_SMALLICON | SHGFI_ICON);
	ImageList_AddIcon(m_hImageList, shfi.hIcon);

	TreeView_SetImageList(hTreeView, m_hImageList, TVSIL_NORMAL);
	SetWindowLong(hTreeView, GWL_STYLE, GetWindowLong(hTreeView, GWL_STYLE)|TVS_HASBUTTONS|TVS_HASLINES|TVS_SHOWSELALWAYS);
	
	//僼僅儖僟撉傒崬傒
	HCURSOR hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));

	TVINSERTSTRUCT tvis;
	tvis.hParent = NULL;
	tvis.hInsertAfter = TVI_SORT;
	tvis.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN;
	tvis.item.pszText = str;
	tvis.item.iImage = 0;
	tvis.item.iSelectedImage = 0;
	tvis.item.cChildren = 1;
	HTREEITEM hRoot = TreeView_InsertItem(hTreeView, &tvis);
	TreeView_Expand(hTreeView, hRoot, TVE_EXPAND);

	//僇儗儞僩僼僅儖僟傪僙僢僩
	SetCurrentFolder(hTreeView, m_pszPath);

	if (m_bSubFolder)
		SendMessage(GetDlgItem(hDlg, IDC_CHECK_SUBFOLDER), BM_SETCHECK, 1, 0);

	SetCursor(hCursor);
}
///////////////////////////////////////////////////////////////
void CFolderDlg::OnOK(HWND hDlg)
{
	HWND hTV = GetDlgItem(hDlg, IDC_TREE_FOLDER);

	TCHAR szPath[MAX_PATH] = _T("");
	TCHAR szTemp[MAX_PATH] = _T("");
	TCHAR szName[MAX_PATH] = _T("");
	
	HTREEITEM hTreeItem = TreeView_GetSelection(hTV);
	GetTree(hTV, hTreeItem, m_pszPath);

	m_bSubFolder = SendMessage(GetDlgItem(hDlg, IDC_CHECK_SUBFOLDER), BM_GETCHECK, 0, 0);
	EndDialog(hDlg, IDOK);
}
///////////////////////////////////////////////////////////////
void CFolderDlg::OnCancel(HWND hDlg)
{
	EndDialog(hDlg, IDCANCEL);
}
///////////////////////////////////////////////////////////////
LRESULT CALLBACK CFolderDlg::FolderDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	static CFolderDlg* pDlg;
	switch (message)
	{
		case WM_INITDIALOG:
		{
			pDlg = (CFolderDlg*)lParam;
			pDlg->OnInitDialog(hDlg);
			return TRUE;
		}
		case WM_COMMAND:
		{
			switch (LOWORD(wParam)) {
				case IDOK :
				{
					pDlg->OnOK(hDlg);
					return TRUE;
				}
				case IDCANCEL:
				{
					pDlg->OnCancel(hDlg);
					return TRUE;
				}
			}
			break;
		}
		case WM_NOTIFY:
		{
			NMHDR* lpnmh = (NMHDR*)lParam;
			if (lpnmh->code == TVN_ITEMEXPANDING) {
				pDlg->OnItemExpanding((NMTREEVIEW*)lpnmh);
				return TRUE;
			}
			else if (lpnmh->code == TVN_ITEMEXPANDED) {
				pDlg->OnItemExpanded((NMTREEVIEW*)lpnmh);
				return TRUE;
			}
			break;
		}
		//case WM_PAINT:
		//	return DefDlgPaintProc(hDlg, wParam, lParam);
		case WM_CTLCOLORSTATIC:
			return DefDlgCtlColorStaticProc(hDlg, wParam, lParam);
#ifdef _WIN32_WCE_PPC
		case WM_SIZE:
		{
			RECT rc;
			HWND hwnd;
			POINT pt;

#define CHECK_HEIGHT	22
#define CHECK_MARGIN	2

			hwnd = GetDlgItem(hDlg, IDCANCEL);
			GetWindowRect(hwnd, &rc);
			pt.x = rc.left; pt.y = rc.top;
			ScreenToClient(hDlg, &pt);
			MoveWindow(hwnd, LOWORD(lParam) - RECT_WIDTH(&rc) - 2, pt.y, RECT_WIDTH(&rc), RECT_HEIGHT(&rc), TRUE);

			hwnd = GetDlgItem(hDlg, IDC_TREE_FOLDER);
			GetWindowRect(hwnd, &rc);
			pt.x = rc.left; pt.y = rc.top;
			ScreenToClient(hDlg, &pt);
			MoveWindow(hwnd, pt.x, pt.y, LOWORD(lParam) - pt.x * 2, 
				HIWORD(lParam) - pt.y - (CHECK_HEIGHT + CHECK_MARGIN * 2), TRUE);

			hwnd = GetDlgItem(hDlg, IDC_CHECK_SUBFOLDER);
			GetWindowRect(hwnd, &rc);
			pt.x = rc.left; pt.y = rc.top;
			ScreenToClient(hDlg, &pt);
			MoveWindow(hwnd, pt.x, HIWORD(lParam) - (CHECK_HEIGHT + CHECK_MARGIN), RECT_WIDTH(&rc), CHECK_HEIGHT, TRUE);

			return TRUE;
		}
#endif
	}
    return FALSE;
}
///////////////////////////////////////////////////////////////
int CFolderDlg::ShowFolderDlg(HWND hwndParent, LPTSTR szPath, int nSize)
{
	m_pszPath = szPath;
	m_nSize = nSize;
	return DialogBoxParam(GetInst(), (LPCTSTR)IDD_FOLDER_DLG, hwndParent, (DLGPROC)FolderDlgProc, (DWORD)this);
}

///////////////////////////////////////////////////////////////
// GSFinder + TQ偺僐乕僪傪堷偭挘偭偰偒偨丅
// Qta偝傫偁傝偑偲乕両両
// -- Ex.Q --
// 僣儕乕 價儏乕偺崁栚偺愨懳僷僗傪媮傔傞
void CFolderDlg::GetTree(HWND hwndTV, HTREEITEM hItem, LPTSTR pszKey)
{
	CTempStr str(IDS_ROOT_FOLDER_NAME);
	TCHAR szName[MAX_PATH];

    TV_ITEM tvi;
    memset (&tvi, 0, sizeof (tvi));

	// 恊傪庢摼
    HTREEITEM hParent;
	hParent = TreeView_GetParent (hwndTV, hItem);
    if (hParent) { 
        // 崁栚偺恊偺恊丒丒丒傪庢摼偡傞
        GetTree (hwndTV, hParent, pszKey);

        // 崁栚偺柤慜傪庢摼偡傞
		tvi.mask       = TVIF_TEXT;
		tvi.hItem      = hItem;
		tvi.pszText    = szName;
		tvi.cchTextMax = MAX_PATH;
		TreeView_GetItem(hwndTV, &tvi);

		// 儖乕僩偱側偗傟偽亸傪偮偗傞
		if (wcscmp(pszKey, str) != 0)
			lstrcat (pszKey, TEXT("\\"));
		else
			lstrcpy (pszKey, TEXT("\\"));

		// 恊偺僷僗偵崱偺僼僅儖僟柤傪捛壛
		lstrcat (pszKey, szName);
	} else {
        // 崁栚偺柤慜傪庢摼偡傞
		lstrcpy(pszKey, _T(""));
        szName[0]      = _T('\0');
        tvi.mask       = TVIF_TEXT | TVIF_PARAM;
        tvi.hItem      = hItem;
        tvi.pszText    = szName;
        tvi.cchTextMax = MAX_PATH;
		TreeView_GetItem(hwndTV, &tvi);
    }
}

///////////////////////////////////////////////////////////////
// CountChildren - 僉乕偺僒僽僉乕偺悢傪挷傋傞
//
int CFolderDlg::CountChildren(LPTSTR pszPath, LPTSTR pszKey)
{
	int rc;
	TCHAR szName[MAX_PATH];
	HANDLE ff;
	WIN32_FIND_DATA wfd;
    DWORD dwCnt = 0;
	wsprintf (szName, _T("%s\\%s\\*.*"), pszPath, pszKey);
	
	ff = FindFirstFile( szName, &wfd );
	if (ff != INVALID_HANDLE_VALUE) {
		while (1) {
			if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
				dwCnt++;
				break;
			}
			rc = FindNextFile (ff, &wfd);
			if (rc == 0)
				break;
		}
		FindClose(ff);
    }
	return dwCnt;
}

///////////////////////////////////////////////////////////////
// EnumChildren - 僉乕偺僒僽僉乕傪楍嫇偡傞
int CFolderDlg::EnumChildren(HWND hwndTV, HTREEITEM hParent, LPTSTR pszPath)
{
	int rc;
    DWORD nChild;
	HANDLE ff;
	WIN32_FIND_DATA wfd;
	TCHAR szName[MAX_PATH];
	TVINSERTSTRUCT tvis;
	DWORD dwCnt = 0;

	wsprintf (szName, _T("%s\\*.*"), pszPath);

	ff = FindFirstFile (szName, &wfd);
	if (ff != INVALID_HANDLE_VALUE) {
		while (1) {
			if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ||
				wfd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
				// 壓埵偺僨傿儗僋僩儕偑偁傞偐専嵏
				nChild = CountChildren (pszPath, wfd.cFileName);

				// 儊儌儕僇乕僪丠
				int nIndex = 1; // default icon index
				if (wfd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
					wsprintf(szName, _T("%s\\%s"), pszPath, wfd.cFileName);
					SHFILEINFO shfi;
					SHGetFileInfo(szName, NULL, &shfi, sizeof(shfi), SHGFI_SMALLICON | SHGFI_ICON);
					nIndex = ImageList_AddIcon(m_hImageList, shfi.hIcon);
				}

				// 僣儕乕 價儏乕 僐儞僩儘乕儖偵僉乕傪憓擖偡傞
				tvis.hParent      = hParent;
				tvis.hInsertAfter = TVI_SORT;
				tvis.item.mask    = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN;
				tvis.item.pszText = wfd.cFileName;
				tvis.item.iImage  = nIndex;
				tvis.item.iSelectedImage = nIndex;
				tvis.item.cChildren = (nChild ? 1 : 0);
				TreeView_InsertItem(hwndTV, &tvis);

				dwCnt++;
			}
			rc = FindNextFile (ff, &wfd);
			if (rc == 0)
				break;
		}
		FindClose(ff);
	}

    // 僒僽僉乕偑側偄応崌偼揥奐儃僞儞傪嶍彍偡傞
    TVITEM tvi;
	tvi.hItem = hParent;
	tvi.mask  = TVIF_CHILDREN;
    if (dwCnt == 0)
        tvi.cChildren = 0;
    else
        tvi.cChildren = 1;
	TreeView_SetItem (hwndTV, &tvi);

	// 僜乕僩
	TreeView_SortChildren(hwndTV, hParent, 0);

	return dwCnt;
}

///////////////////////////////////////////////////////////////
void CFolderDlg::OnItemExpanded(NMTREEVIEW* lpnmtv)
{
	// 師偵僽儔儞僠傪揥奐偡傞偲偒偵夵傔偰楍嫇偡傞偺偱僒僽僉乕傪嶍彍偡傞
	if (lpnmtv->action == TVE_COLLAPSE) {
		HTREEITEM hChild;
		HTREEITEM hNext;

		hChild = TreeView_GetChild (lpnmtv->hdr.hwndFrom, lpnmtv->itemNew.hItem);
		while (hChild) {
			hNext = TreeView_GetNextItem (lpnmtv->hdr.hwndFrom, hChild, TVGN_NEXT);
			TreeView_DeleteItem (lpnmtv->hdr.hwndFrom, hChild);
			hChild = hNext;
		}
	}
}

///////////////////////////////////////////////////////////////
void CFolderDlg::OnItemExpanding(NMTREEVIEW* lpnmtv)
{
	if (lpnmtv->action == TVE_EXPAND) {
		TCHAR szKey[MAX_PATH];
		//僼僅儖僟柤傪庢摼
		GetTree (lpnmtv->hdr.hwndFrom, lpnmtv->itemNew.hItem, szKey);
		//巕僣儕乕傪楍嫇偡傞
		EnumChildren (lpnmtv->hdr.hwndFrom, lpnmtv->itemNew.hItem, szKey);
	}
}

void CFolderDlg::SetCurrentFolder(HWND hwndTV, LPCTSTR lpszPath)
{
	LPCTSTR pszStart = wcschr(lpszPath, _T('\\'));
	HTREEITEM hSelectItem = TreeView_GetRoot(hwndTV);

	HTREEITEM hParent = hSelectItem;
	TreeView_Expand(hwndTV, hParent, TVE_EXPAND);

	while (pszStart) {
		TCHAR szName[MAX_PATH] = {0};
		LPCTSTR pszEnd = wcschr(pszStart + 1, _T('\\'));
		if (pszEnd) {
			int len = pszEnd - (pszStart + 1);
			wcsncpy(szName, ++pszStart, len);
			szName[len] = 0;
		}
		else
			wcscpy(szName, ++pszStart);

		HTREEITEM hChild = TreeView_GetChild(hwndTV, hParent);
		while (hChild) {
			TCHAR szChildName[MAX_PATH] = {0};
			TVITEM tvi;
			tvi.mask = TVIF_TEXT | TVIF_HANDLE;
			tvi.pszText = szChildName;
			tvi.cchTextMax = MAX_PATH;
			tvi.hItem = hChild;
			TreeView_GetItem(hwndTV, &tvi);
			if (wcscmp(szName, szChildName) == 0) {
				hSelectItem = hParent = hChild;
				TreeView_Expand(hwndTV, hParent, TVE_EXPAND);
				break;
			}

			hChild = TreeView_GetNextItem(hwndTV, hChild, TVGN_NEXT);
		}
		if (!hChild) break;

		pszStart = wcschr(pszStart, _T('\\'));
	}

	TreeView_SelectItem(hwndTV, hSelectItem);
}

void CFolderDlg::CreateNewFolder(HWND)
{
}

void CFolderDlg::OnRenameFolder(HWND)
{
}

	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美在线视频| 欧美一区二区视频在线观看| 中文字幕色av一区二区三区| 欧美日韩在线观看一区二区 | 日本乱人伦一区| 免费看精品久久片| 亚洲理论在线观看| 欧美一级精品大片| 成人午夜精品在线| 久久精品国产第一区二区三区| 自拍偷拍欧美激情| 国产欧美日韩亚州综合| 欧美一级欧美三级在线观看 | 欧美日韩国产一二三| 成人理论电影网| 久久99久久久久| 日韩中文字幕91| 亚洲精品视频免费看| 欧美精品一区二区三区在线 | 欧美一区二区网站| 在线精品视频一区二区三四| 成人午夜精品一区二区三区| 青草av.久久免费一区| 日韩一区欧美一区| 26uuu另类欧美| 欧美在线观看18| 日本韩国欧美一区二区三区| 成人av在线资源网| 国产乱码精品1区2区3区| 久久国产免费看| 美国精品在线观看| 日本美女一区二区三区视频| 一区二区在线免费| 中文字幕一区日韩精品欧美| 国产精品进线69影院| 精品理论电影在线观看| 欧美一区永久视频免费观看| 欧美影院精品一区| 色成人在线视频| 波多野洁衣一区| 国产乱子轮精品视频| 蜜臀久久久久久久| 日韩国产一二三区| 丝袜国产日韩另类美女| 亚洲成人免费电影| 日韩高清不卡在线| 久久精品国产99国产| 蜜桃免费网站一区二区三区 | 国产精品88av| 国产91精品一区二区麻豆网站| 国产成人综合精品三级| 国产成人一区二区精品非洲| 日韩欧美成人一区二区| 国产精品亚洲一区二区三区在线| 亚洲免费色视频| 欧美国产欧美综合| 久久网站热最新地址| av在线播放成人| 五月天亚洲精品| 1024亚洲合集| 国产亚洲婷婷免费| 欧美一级理论性理论a| 欧美亚洲动漫精品| 欧美日韩在线电影| 欧美在线观看视频一区二区三区| 国产精品18久久久久久久网站| 亚洲va韩国va欧美va精品| 一区二区三区在线观看视频| 久久众筹精品私拍模特| 日韩一区二区三区高清免费看看| 欧美日韩国产区一| 777奇米成人网| 欧美日本在线播放| 欧美一区二区三区播放老司机| 欧美在线不卡视频| 91麻豆免费视频| 6080午夜不卡| 久久综合色播五月| 亚洲国产va精品久久久不卡综合| 日韩在线观看一区二区| 成人av第一页| 亚洲一区成人在线| 95精品视频在线| 亚洲女女做受ⅹxx高潮| 色婷婷亚洲综合| 日本精品裸体写真集在线观看 | 99re在线精品| 制服丝袜亚洲精品中文字幕| 蜜桃久久久久久久| 国产精品国产自产拍高清av | 91精品国产综合久久久蜜臀粉嫩| 日韩欧美专区在线| 亚洲色图欧美激情| 麻豆成人av在线| 91老师国产黑色丝袜在线| 欧美一区二区黄色| 亚洲精品成人少妇| 国产在线精品视频| 日日欢夜夜爽一区| 国产伦精品一区二区三区免费| 在线这里只有精品| 国产亚洲综合色| 丝袜a∨在线一区二区三区不卡| 麻豆91精品91久久久的内涵| 欧美日韩精品一二三区| 欧美肥妇毛茸茸| 亚洲精品视频在线观看免费| 国产一区二区三区四区五区美女 | 日韩欧美亚洲国产另类| 亚洲欧洲99久久| 国产91综合一区在线观看| 欧美日韩大陆在线| 亚洲男人的天堂av| 色诱视频网站一区| 国产精品理论在线观看| 国产 欧美在线| 国产日韩欧美电影| 国产成人精品免费一区二区| 欧美一区2区视频在线观看| 亚洲成人自拍偷拍| 欧美日韩中文精品| 亚洲一区在线观看视频| 91在线精品秘密一区二区| 亚洲午夜av在线| 欧美乱妇15p| 高清成人在线观看| 日韩欧美电影一区| 亚洲综合一区二区三区| 91污片在线观看| 一区二区三区成人在线视频| 日本二三区不卡| 国产69精品久久99不卡| 99久久精品情趣| 午夜精彩视频在线观看不卡| 成人性生交大合| 中文字幕av资源一区| 成人精品视频一区二区三区| 久久亚洲捆绑美女| 国产精品白丝jk黑袜喷水| 久久影视一区二区| 国产精品一级在线| 日本一区二区三区视频视频| 国产成人超碰人人澡人人澡| 久久久久久免费| 国产成人精品免费| 国产成人av一区二区三区在线| 成人欧美一区二区三区小说| 欧美一区二区成人6969| 99re6这里只有精品视频在线观看| 亚洲色图视频网站| 8v天堂国产在线一区二区| 风间由美性色一区二区三区| 日韩电影一二三区| 欧美韩日一区二区三区四区| 色综合激情久久| 国产自产v一区二区三区c| 一区二区三区免费观看| 精品国产免费一区二区三区香蕉| 99精品久久99久久久久| 国产伦精品一区二区三区视频青涩| 亚洲精品成人天堂一二三| 久久这里只精品最新地址| 欧美日韩高清在线| 欧美日韩亚洲综合在线| 99re这里只有精品6| 成人中文字幕电影| 国产精品性做久久久久久| 蜜臀国产一区二区三区在线播放| 亚洲一区二区三区视频在线播放| 日韩理论片中文av| 国产精品视频一二三区| 欧美国产日韩a欧美在线观看| 91精品国产综合久久福利 | 国产午夜精品久久久久久久| 国产亚洲精品aa| 欧美v国产在线一区二区三区| 精品少妇一区二区三区日产乱码| 色呦呦网站一区| 色综合中文字幕国产| 色激情天天射综合网| 91福利在线播放| 日本一区二区视频在线| 日本久久一区二区三区| 亚洲成人激情av| 亚洲综合成人在线| 2020国产精品| 欧美视频你懂的| 成人性视频网站| 日韩高清在线不卡| 中文字幕亚洲区| 精品久久人人做人人爰| 日本高清无吗v一区| 国产自产v一区二区三区c| 一区二区三区国产精华| 久久亚洲精华国产精华液 | 国产一区二区精品久久91| 亚洲综合图片区| 久久久国产精品麻豆| 欧美一卡二卡在线观看| 色婷婷综合久久久中文字幕|