⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optiondlg.cpp

📁 PocketPC上很好用的文件管理器,而且里面的封装性很好,学windows mobile开发的兄弟,值得一看
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			return DefDlgPaintProc(hDlg, wParam, lParam);
		case WM_CTLCOLORSTATIC:
			return DefDlgCtlColorStaticProc(hDlg, wParam, lParam);
#endif
	}
    return FALSE;
}
///////////////////////////////////////////////////////////////
LRESULT CALLBACK PPOptionPathProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
		{
#ifndef __POCKET_PC
			SetWindowText(GetDlgItem(hDlg, IDC_EDIT_DESKTOP), g_MainWnd.m_szDesktopPath);
#endif
			SetWindowText(GetDlgItem(hDlg, IDC_EDIT_STARTMENU), g_MainWnd.m_szStartMenuPath);
			SetWindowText(GetDlgItem(hDlg, IDC_EDIT_FAVORITES), g_MainWnd.m_szFavoritesPath);
			SetWindowText(GetDlgItem(hDlg, IDC_EDIT_NETWORK), g_MainWnd.m_szNetworkPath);
			return TRUE;
		}
		case WM_NOTIFY:
		{
			NMHDR* pnmh = (NMHDR*)lParam;
			if (pnmh->code == PSN_APPLY)
			{
				TCHAR szPath[MAX_PATH]={0};
#ifndef __POCKET_PC
				//僨僗僋僩僢僾
				GetWindowText(GetDlgItem(hDlg, IDC_EDIT_DESKTOP), szPath, sizeof(szPath));
				if(wcslen(szPath)!=0) wcscpy(g_MainWnd.m_szDesktopPath, szPath);
#endif
				//僗僞乕僩儊僯儏乕
				GetWindowText(GetDlgItem(hDlg, IDC_EDIT_STARTMENU), szPath, sizeof(szPath));
				if(wcslen(szPath)!=0) {
					wcscpy(g_MainWnd.m_szStartMenuPath, szPath);
					g_MainWnd.m_lpszStartMenu = wcsrchr(g_MainWnd.m_szStartMenuPath, _T('\\'))+1;
				}

				//僱僢僩儚乕僋
				GetWindowText(GetDlgItem(hDlg, IDC_EDIT_NETWORK), szPath, sizeof(szPath));
				if(wcslen(szPath)!=0)
					wcscpy(g_MainWnd.m_szNetworkPath, szPath);

				//偍婥偵擖傝
				GetWindowText(GetDlgItem(hDlg, IDC_EDIT_FAVORITES), szPath, sizeof(szPath));
				if(wcslen(szPath)!=0&& wcscmp(szPath, g_MainWnd.m_szFavoritesPath)!=0) {
					wcscpy(g_MainWnd.m_szFavoritesPath, szPath);
					//偍婥偵擖傝儊僯儏乕偺嵞嶌惉
					g_MainWnd.m_ListView.DeleteFavoritesMenu();
					g_MainWnd.m_ListView.InitFavoritesMenu();
				}
				return TRUE;
			}
			break;
		}
#ifdef __POCKET_PC
		case WM_PAINT:
			return DefDlgPaintProc(hDlg, wParam, lParam);
		case WM_CTLCOLORSTATIC:
			return DefDlgCtlColorStaticProc(hDlg, wParam, lParam);
#endif
	}
    return FALSE;
}
///////////////////////////////////////////////////////////////
LRESULT CALLBACK PPOptionFontProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	int nptTbl[]={1, 4, 6, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 0};
	switch (message)
	{
		case WM_INITDIALOG:
		{
			SendMessage(GetDlgItem(hDlg, IDC_CHK_FONTCHANGE), BM_SETCHECK, g_MainWnd.m_bFontChange?1:0, 0);
			SendMessage(GetDlgItem(hDlg, IDC_LIST_FONTNAME), LB_ADDSTRING, 0, (LPARAM)_T("System"));
			SendMessage(GetDlgItem(hDlg, IDC_LIST_FONTNAME), LB_SETCURSEL, 0, 0);
			
			HDC hDC = GetDC(hDlg);
			EnumFonts(hDC, NULL, (FONTENUMPROC)EnumFontsProc, (LPARAM)hDlg);
			ReleaseDC(hDlg, hDC);

			HWND hLB = GetDlgItem(hDlg, IDC_LIST_FONTSIZE);
			for(int i=0; nptTbl[i]!=0; i++)
			{
				//傾僀僥儉捛壛
				TCHAR szBuf[16];
				wsprintf(szBuf, _T("%d"), nptTbl[i]);
				SendMessage(hLB, LB_ADDSTRING, 0, (LPARAM)szBuf);
				
				if(nptTbl[i] == g_MainWnd.m_nFontSize || i==0)
				{
					SendMessage(hLB, LB_SETCURSEL, i, 0);
				}

			} // End of for

			if(!g_MainWnd.m_bFontChange)
			{
				EnableWindow(GetDlgItem(hDlg,IDC_LIST_FONTNAME), FALSE);
				EnableWindow(GetDlgItem(hDlg,IDC_LIST_FONTSIZE), FALSE);
			}
			return TRUE;
		}
		case WM_NOTIFY:
		{
			NMHDR* pnmh = (NMHDR*)lParam;
			if (pnmh->code == PSN_APPLY)
			{
				g_MainWnd.m_bFontChange = 
					SendMessage(GetDlgItem(hDlg, IDC_CHK_FONTCHANGE), BM_GETCHECK, 0, 0)?TRUE:FALSE;

				TCHAR szBuf[128];
				HWND hLB = GetDlgItem(hDlg, IDC_LIST_FONTNAME);
				int nIndex = SendMessage(hLB, LB_GETCURSEL, 0, 0);
				SendMessage(hLB, LB_GETTEXT, (WPARAM)nIndex, (LPARAM)szBuf);
				wcscpy(g_MainWnd.m_szFontName, szBuf);

				hLB = GetDlgItem(hDlg, IDC_LIST_FONTSIZE);
				nIndex = SendMessage(hLB, LB_GETCURSEL, 0, 0);
				SendMessage(hLB, LB_GETTEXT, (WPARAM)nIndex, (LPARAM)szBuf);
				g_MainWnd.m_nFontSize = _wtoi(szBuf);

				//僼僅儞僩斀塮
				g_MainWnd.SetFont();
				return TRUE;
			}
			break;
		}
		case WM_COMMAND:
		{
			if (LOWORD(wParam)==IDC_CHK_FONTCHANGE)
			{
				g_MainWnd.m_bFontChange =
					SendMessage(GetDlgItem(hDlg, IDC_CHK_FONTCHANGE), BM_GETCHECK, 0, 0)?TRUE:FALSE;
				if(g_MainWnd.m_bFontChange)
				{
					EnableWindow(GetDlgItem(hDlg,IDC_LIST_FONTNAME), TRUE);
					EnableWindow(GetDlgItem(hDlg,IDC_LIST_FONTSIZE), TRUE);
				}
				else
				{
					EnableWindow(GetDlgItem(hDlg,IDC_LIST_FONTNAME), FALSE);
					EnableWindow(GetDlgItem(hDlg,IDC_LIST_FONTSIZE), FALSE);
				}
				return TRUE;
			}
			break;
		}
#ifdef __POCKET_PC
		case WM_PAINT:
			return DefDlgPaintProc(hDlg, wParam, lParam);
		case WM_CTLCOLORSTATIC:
			return DefDlgCtlColorStaticProc(hDlg, wParam, lParam);
#endif
	}
    return FALSE;
}
//ADD END

///////////////////////////////////////////////////////////////
int COptionDlg::ShowOptionDlg()
{
	pod = this;
	m_bRefreshIcon = FALSE;

#if	defined(__POCKET_PC)||defined(__PALMSIZE_PC)
	PROPSHEETPAGE psp[9];	//MOD TODA
#else
	PROPSHEETPAGE psp[8];	//MOD TODA
#endif
	//嫟捠晹暘
	for (int i=0; i<(sizeof(psp)/sizeof(PROPSHEETPAGE)); i++)
	{
		psp[i].dwSize = sizeof(PROPSHEETPAGE);
		psp[i].dwFlags = PSP_USETITLE;
		psp[i].hInstance = g_hInst;
		psp[i].pszIcon = NULL;
	} // End of for

	//昞帵
	psp[0].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_VIEW);
	psp[0].pszTitle = IDS_OPTION_VIEW;
	psp[0].pfnDlgProc = (DLGPROC)PPOptionViewProc;
	
	//傾僀僐儞
	psp[1].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_ICON);
	psp[1].pszTitle = IDS_OPTION_ICON;
	psp[1].pfnDlgProc = (DLGPROC)PPOptionIconProc;

	//僼僅儞僩
	psp[2].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_FONT);
	psp[2].pszTitle = IDS_OPTION_FONT;
	psp[2].pfnDlgProc = (DLGPROC)PPOptionFontProc;

	//憖嶌
	psp[3].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_CONTROL);
	psp[3].pszTitle = IDS_OPTION_CTRL;
	psp[3].pfnDlgProc = (DLGPROC)PPOptionControlProc;
	
	//傾僾儕働乕僔儑儞
	psp[4].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_SENDAPP);
	psp[4].pszTitle = IDS_OPTION_RUNAPP;
	psp[4].pfnDlgProc = (DLGPROC)PPOptionSendAppProc;

	//埑弅/夝搥
	psp[5].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_COMPRESS);
	psp[5].pszTitle = IDS_OPTION_COMPRESS;
	psp[5].pfnDlgProc = (DLGPROC)PPOptionCompressProc;

	//僔僗僥儉僷僗
	psp[6].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_PATH);
	psp[6].pszTitle = IDS_OPTION_PATH;
	psp[6].pfnDlgProc = (DLGPROC)PPOptionPathProc;

	//僼傽僀儖偺庬椶
	psp[7].pszTemplate = MAKEINTRESOURCE(IDD_PP_OPTION_FILETYPE);
	psp[7].pszTitle = IDS_OPTION_FILETYPE;
	psp[7].pfnDlgProc = (DLGPROC)PPOptionFiletypeProc;

#if	defined(__POCKET_PC)||defined(__PALMSIZE_PC)
	//僶乕僕儑儞忣曬
	psp[8].pszTemplate = MAKEINTRESOURCE(IDD_ABOUTBOX);
	psp[8].pszTitle = IDS_OPTION_ABOUT;
	psp[8].pfnDlgProc = (DLGPROC)About;
#endif

	//夋柺惗惉梡僷儔儊乕僞愝掕
	PROPSHEETHEADER psh;
	psh.dwSize = sizeof(PROPSHEETHEADER);
#ifdef __POCKET_PC
	psh.dwFlags = PSH_PROPSHEETPAGE | PSH_MAXIMIZE | PSH_USECALLBACK;
	psh.pfnCallback = PropSheetCallback;
#else
	psh.dwFlags = PSH_PROPSHEETPAGE;
#endif
	psh.nPages = sizeof(psp)/sizeof(PROPSHEETPAGE);
	psh.nStartPage = 0;
	psh.pszIcon = NULL;
	psh.pszCaption = IDS_TITLE_OPTION;
	psh.hwndParent = g_MainWnd.m_hWnd;
	psh.hInstance = g_hInst;
	psh.ppsp = psp;

	//夋柺惗惉
	int nRet = PropertySheet(&psh);
	if (m_bRefreshIcon)
	{
		g_MainWnd.m_ListView.SetImageList();
		nRet = IDOK;
	}

	//OK儃僞儞墴壓屻(愝掕斀塮)
	if (nRet==IDOK)
	{
		g_MainWnd.m_ListView.InitOpenAppMenu();

		//徻嵶昞帵偺応崌偺傒昞帵宍幃嵞愝掕
		if (g_MainWnd.m_ListView.m_Settings.dwListStyle == LVS_REPORT)
			g_MainWnd.m_ListView.OnChangeListStyle(
				(g_MainWnd.m_ListView.m_Settings.dwListExStyle?ID_VIEW_REPORTLINE:ID_VIEW_REPORT));

		g_MainWnd.m_ListView.LoadFolderItem(g_MainWnd.m_ListView.m_szCurrentFolder);
		g_MainWnd.m_CmdBands.SetEnableItemSelected();
	}

	pod = NULL;

	return nRet;
}
///////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -