Exemple #1
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 窗口被创建
VOID CMainWnd::OnCreate()
{
#ifdef _MAKELANG
	OnViewLanguage(IDM_View_Default);
#else
	// 列出语言
	if (CLanguage::List(GetSubMenu(GetSubMenu(m_hMenu, 2), 12)) != IDM_View_Default)
	{
		// 翻译菜单
		CLanguage::TranslateMenu(m_hMenu, MAKEINTRESOURCE(IDR_Menu));
	}
#endif

	// 创建
	CClientWnd::Create();

	// 设置菜单项状态
	OnViewMenu();

	// 注册热键
	RegisterHotKey(m_hWnd, IDC_TrayIcon, MOD_WIN, 'V');

	// 读取新近文件列表
	CRecentFile::Load(GetSubMenu(m_hMenu, 0), 4);

	// 设置同步状态
	//CRawVideo::SetSync(CIni::GetInt(INI_Synchronize));
	//CheckCommand(IDM_Play_Synchronize, CRawPlayer::m_bSync);
}
Exemple #2
0
BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(lParam);

	switch (LOWORD(wParam))
	{
	case IDM_FILE_EXIT:			return OnFileExit();
	case IDM_HELP_ABOUT:		return OnHelp();
	case IDW_VIEW_STATUSBAR:	return OnViewStatusBar();
	case IDW_VIEW_TOOLBAR:		return OnViewToolBar();
	case IDM_VIEW_LARGEICON:	return OnViewLargeIcon();
	case IDM_VIEW_SMALLICON:	return OnViewSmallIcon();
	case IDM_VIEW_LIST:			return OnViewList();
	case IDM_VIEW_REPORT:		return OnViewReport();
	case IDM_SHOW_HIDDEN:		return OnShowHidden();
	case IDM_VIEWMENU:			return OnViewMenu();
	}

	return FALSE;

} // CMainFrame::OnCommand(...)
Exemple #3
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 切换查看菜单状态
VOID CMainWnd::OnViewMenu(UINT uCmd, BOOL bInitialize)
{
	UINT i;
	BOOL bChecked;
	const PTSTR STR_KeyNames[] =
	{
		INI_Toolbar,
		INI_StatusBar,
		INI_AlwaysOnTop,
		INI_MinToTray,
		INI_ShowSplash,
		INI_ShowOpen,
		INI_PlayOnOpen
	};

	// 获取 INI 键名索引号
	i = uCmd - IDM_View_Toolbar;

	// 如果是有效命令
	if (i < _NumOf(STR_KeyNames))
	{
		// 切换菜单项
		bChecked = !IsMenuChecked(uCmd);
		CheckCommand(uCmd, bChecked);

		// 如果不是初始化指定的切换,记录到 INI 中
		if (bInitialize == FALSE)
		{
			CIni::SetInt(STR_KeyNames[i], bChecked);
		}

		switch (uCmd)
		{
		case IDM_View_Toolbar:
		case IDM_View_StatusBar:
			CClientWnd::ToggleBar();
			break;

		case IDM_View_AlwaysOnTop:
			// 总在最前
			SetWindowPos(m_hWnd, bChecked ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
			return;

		case IDM_View_MinToTray:
			// 最小化到系统托盘
			if (bChecked && (bInitialize == FALSE))
			{
				CloseWindow(m_hWnd);
			}
			return;

		default:
			return;
		}
	}
	// 如果是初始化菜单项
	else if (bInitialize)
	{
		// 初始化菜单项
		for (i = 0; i < _NumOf(STR_KeyNames); i++)
		{
			// 默认是否选择
			bChecked = IsMenuChecked(IDM_View_Toolbar + i);

			// 如果默认选择与 INI 中不一样
			if (bChecked != (BOOL) CIni::GetInt(STR_KeyNames[i], bChecked))
			{
				// 切换菜单项
				OnViewMenu(IDM_View_Toolbar + i, TRUE);
			}
		}
	}
}
Exemple #4
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 命令处理
VOID CMainWnd::OnCommand(WPARAM wParam, LPARAM lParam)
{
	PTSTR p;
	DWORD dwSize;
	CChildWnd *pWnd;	
	TCHAR tzTemp[512];
	TCHAR tzPath[512];

	if ((LOWORD(wParam) >= IDM_View_Default) && (LOWORD(wParam) < IDM_View_Default + 50))
	{
		// 改变语言
		if (IsMenuChecked(LOWORD(wParam)) == FALSE)
		{
			OnViewLanguage(LOWORD(wParam));
		}
		return;
	}
	else if ((LOWORD(wParam) >= IDM_File_Recent) && (LOWORD(wParam) < IDM_File_Recent + 10))
	{
		// 打开新近文件
		GetMenuString(m_hMenu, LOWORD(wParam), tzTemp, _NumOf(tzTemp), MF_BYCOMMAND);
		OnFileOpen(tzTemp + 4);
		return;
	}

	switch (LOWORD(wParam))
	{
	case IDM_File_Open:
		OnFileOpen((PTSTR) lParam);
		break;

	case IDM_File_Exit:
		PostMessage(m_hWnd, WM_CLOSE, 0, 0);
		break;

	case IDM_View_Toolbar:
	case IDM_View_StatusBar:
	case IDM_View_AlwaysOnTop:
	case IDM_View_MinToTray:
	case IDM_View_ShowSplash:
	case IDM_View_ShowOpen:
	case IDM_View_PlayOnOpen:
		// 查看选项
		OnViewMenu(LOWORD(wParam), FALSE);
		break;

	case IDM_View_AssociateFile:
		GetModuleFileName(NULL, tzPath, MAX_PATH);
		wsprintf(tzTemp, TEXT("\"%s\" \"%%1\""), tzPath);
		dwSize = _NumOf(tzPath);
		SHGetValue(HKEY_CLASSES_ROOT, STR_AppName TEXT("\\shell\\open\\command"), NULL, NULL, tzPath, &dwSize);
		if (lstrcmpi(tzTemp, tzPath) == 0)
		{
			SHDeleteKey(HKEY_CLASSES_ROOT, STR_AppName);

			for (p = STR_ExtList; *p; p += lstrlen(p) + 1)
			{
				SHDeleteKey(HKEY_CLASSES_ROOT, p);
			}
		}
		else
		{
			SHSetValue(HKEY_CLASSES_ROOT, 
				STR_AppName TEXT("\\shell\\open\\command"), NULL, REG_SZ, tzTemp, _StrSize(tzTemp));

			GetModuleFileName(NULL, tzPath, MAX_PATH);
			wsprintf(tzTemp, TEXT("\"%s\",1"), tzPath);
			SHSetValue(HKEY_CLASSES_ROOT, STR_AppName TEXT("\\DefaultIcon"), NULL, REG_SZ, tzTemp, _StrSize(tzTemp));

			for (p = STR_ExtList; *p; p += lstrlen(p) + 1)
			{
				SHSetValue(HKEY_CLASSES_ROOT, p, NULL, REG_SZ, STR_AppName, sizeof(STR_AppName));
			}
		}
		break;

	case IDM_Window_Cascade:
		SendMessage(CClientWnd::m_hWnd, WM_MDICASCADE, 0, 0);
		return;

	case IDM_Window_TitleHorz:
		SendMessage(CClientWnd::m_hWnd, WM_MDITILE, MDITILE_HORIZONTAL, 0);
		break;

	case IDM_Window_TitleVert:
		SendMessage(CClientWnd::m_hWnd, WM_MDITILE, MDITILE_VERTICAL, 0);
		break;

	case IDM_Window_ArrangeIcons:
		SendMessage(CClientWnd::m_hWnd, WM_MDIICONARRANGE, 0, 0);
		break;

	case IDM_Window_CloseAll:
		CClientWnd::CloseAll();
		break;

	case IDM_Help_Content:
		// 查看帮助内容
		GetModuleFileName(NULL, tzTemp, MAX_PATH);
		lstrcpy(_StrEnd(tzTemp) - _LenOf(EXT_Chm), EXT_Chm);
		if (ShellExecute(NULL, NULL, tzTemp, NULL, NULL, SW_SHOW) <= (HINSTANCE) 32)
		{
			ErrorBox(ERR_HelpErr);
		}
		break;

	case IDM_Help_Desktop:
	case IDM_Help_StartMenu:
	case IDM_Help_ProgramMenu:
	case IDM_Help_QuickLaunch:
	case IDM_Help_VisualStudio:
		// 创建或删除快捷方式
		OnHelpShortcut(LOWORD(wParam));
		break;

	case IDM_Help_About:
		// 显示关于对话框
		CAboutDlg::Show(m_hWnd);
		break;

	case IDC_TrayIcon:
		// 系统托盘消息
		if ((lParam == WM_LBUTTONUP) || (lParam == WM_RBUTTONUP))
		{
			OnTrayIcon(FALSE);
		}
		break;

	default:
		pWnd = CClientWnd::GetChildWnd();
		_ExIf(pWnd, pWnd->OnCommand(wParam, lParam));
	}
}