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

📄 commandbands.cpp

📁 PocketPC上很好用的文件管理器,而且里面的封装性很好,学windows mobile开发的兄弟,值得一看
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	if(g_MainWnd.m_Compress.IsCompress(nCompDLL)) {
		EnableMenuItem(hMenu, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hSubMenu2, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_ENABLED);
	} else {
		EnableMenuItem(hMenu, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hSubMenu2, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
	}

	if(g_MainWnd.m_Compress.IsUnCompress()) {
		EnableMenuItem(hMenu, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hSubMenu, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_ENABLED);
	} else {
		EnableMenuItem(hMenu, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hSubMenu, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);
	}
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableSearchSelected(HMENU hMenu, LPTSTR lpszPath)
{
	if(wcscmp(SEARCH_FOLDER_NAME, lpszPath)==0)
	{
		EnableMenuItem(hMenu, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_CREATEFOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_PASTE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_CREATEFOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
	}
}
//ADD END
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableItemSelected()
{
	HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);
	if (g_MainWnd.m_ListView.GetValidAndSelectedCount())
	{
		//儊僯儏乕傪桳岠偵
		EnableMenuItem(hMenu, ID_FILE_OPEN, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_DELETE, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_RENAME, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_ENABLED);
//		EnableMenuItem(hMenu, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_ENABLED);	//DEL TODA (from GSFinder ver.1.99)
		EnableMenuItem(hMenu, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_ENABLED);
		//ADD START TODA (埑弅儊僯儏乕)
		SetEnableCompressSelected(GetSubMenu(hMenu, 0), 0, 8, g_MainWnd.m_ListView.m_Settings.nCompDLL);
		//ADD END

		//DEL START TODA (from GSFinder ver.1.99)
//		for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
//			EnableMenuItem(hMenu, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_ENABLED);
		//DEL END

		//僣乕儖僶乕傪桳岠偵
		SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_ENABLED);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_ENABLED);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_ENABLED);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_ENABLED);

		//ADD START TODA (from GSFinder ver.1.99)
		if (g_MainWnd.m_ListView.IsSelectionFile())
		{
			EnableMenuItem(hMenu, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_ENABLED);
			EnableMenuItem(hMenu, ID_FILE_TO_APP, MF_BYCOMMAND|MF_ENABLED);

			for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
				EnableMenuItem(hMenu, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_ENABLED);
		}
		else
		{
			EnableMenuItem(hMenu, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
			EnableMenuItem(hMenu, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);

			for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
				EnableMenuItem(hMenu, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);
		}
		//ADD END
	}
	else if (ListView_GetSelectedCount(g_MainWnd.m_ListView.m_hWnd))
	{
		//儊僯儏乕傪柍岠偵
		EnableMenuItem(hMenu, ID_FILE_OPEN, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_DELETE, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_RENAME, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);	//ADD TODA (from GSFinder ver.1.99)
		EnableMenuItem(hMenu, ID_EDIT_CUT, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_COPY, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED);
		//ADD START TODA
		EnableMenuItem(hMenu, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);
		//ADD END

		for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
			EnableMenuItem(hMenu, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);

		//僣乕儖僶乕傪柍岠偵
		SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_INDETERMINATE);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_INDETERMINATE);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_INDETERMINATE);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_INDETERMINATE);
	}
	else 
	{
		//儊僯儏乕傪柍岠偵
		EnableMenuItem(hMenu, ID_FILE_OPEN, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_DELETE, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_RENAME, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED);
		EnableMenuItem(hMenu, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);	//ADD TODA (from GSFinder ver.1.99)
		EnableMenuItem(hMenu, ID_EDIT_CUT, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_COPY, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED);
		//ADD START TODA
		EnableMenuItem(hMenu, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
		EnableMenuItem(hMenu, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);
		//ADD END

		for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
			EnableMenuItem(hMenu, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);

		//僣乕儖僶乕傪柍岠偵
		SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_INDETERMINATE);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_INDETERMINATE);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_INDETERMINATE);
		SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_INDETERMINATE);
	}

	//ADD START TODA (専嶕偺桳岠/柍岠敾掕)
	SetEnableSearchSelected(hMenu, g_MainWnd.m_ListView.m_szCurrentFolder);
	//ADD END
}

//ADD START TODA (僣儕乕價儏乕梡儊僯儏乕愝掕)
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableItemSelected2()
{
	HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);

	//儊僯儏乕傪桳岠偵
	EnableMenuItem(hMenu, ID_FILE_OPEN, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_DELETE, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_RENAME, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_ENABLED);
	SetEnableCompressSelected(GetSubMenu(hMenu, 0), 0, 8, g_MainWnd.m_ListView.m_Settings.nCompDLL);

	//僣乕儖僶乕傪桳岠偵
	SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_ENABLED);
	SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_ENABLED);
	SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_ENABLED);
	SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_ENABLED);

	EnableMenuItem(hMenu, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);

	for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
		EnableMenuItem(hMenu, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);
}

///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableItemSelected3()
{
	HMENU hMenu = CommandBar_GetMenu(m_hMenubar, 0);

	//儊僯儏乕傪桳岠偵
	EnableMenuItem(hMenu, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED);
	EnableMenuItem(hMenu, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED);

	//儊僯儏乕傪柍岠偵
	EnableMenuItem(hMenu, ID_FILE_OPEN, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_OPEN_PARAM, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_CREATE_SHORTCUT, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_DELETE, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_RENAME, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_PROPERTY, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_IR_SEND, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_COPY_FOLDER, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_MOVE_FOLDER, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_SHORTCUT_FOLDER, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_TO_APP, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_COMPRESS, MF_BYCOMMAND|MF_GRAYED);
	EnableMenuItem(hMenu, ID_FILE_UNCOMPRESS, MF_BYCOMMAND|MF_GRAYED);

	for (int i=0; i<g_MainWnd.m_ListView.m_nOpenAppInfoCount; i++)
		EnableMenuItem(hMenu, ID_FILE_OPEN_APP + i, MF_BYCOMMAND|MF_GRAYED);

	//僣乕儖僶乕傪桳岠偵
	SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_CUT, TBSTATE_ENABLED);
	SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_COPY, TBSTATE_ENABLED);

	//僣乕儖僶乕傪柍岠偵
	SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_DELETE, TBSTATE_INDETERMINATE);
	SendMessage(m_hToolbar, TB_SETSTATE, ID_FILE_PROPERTY, TBSTATE_INDETERMINATE);
}
//ADD END

///////////////////////////////////////////////////////////////
void CCmdBands::OnAutoSize()
{
//MOD START TODA (HPC斉偵偰僐儞儃儃僢僋僗偺僒僀僘偑偍偐偟偔側傞堊v1.20偵栠偡)
	//僐儞儃儃僢僋僗偺戝偒偝曄峏
//	RECT rctParent;
//	GetClientRect(GetParent(m_hComboBox), &rctParent);
//	MoveWindow(m_hComboBox, 0, 0, rctParent.right, rctParent.bottom, TRUE);
	RECT rctParent, rctCombo;
	GetWindowRect(m_hComboBox, &rctCombo);
	GetWindowRect(GetParent(m_hComboBox), &rctParent);
	int nParentWidth = rctParent.right - rctParent.left;
	if (nParentWidth > 50)
	{
		SetWindowPos(m_hComboBox, HWND_TOP, 0, 0, nParentWidth - 2, rctCombo.bottom - rctCombo.top, SWP_NOZORDER);
	}
//MOD END
}

///////////////////////////////////////////////////////////////
void CCmdBands::SaveSettings()
{
	COMMANDBANDSRESTOREINFO cbri;
	int i;

	int nIndex = 0;
	//MOD TODA
	for (i=0; i<3; i++) // i<4 -> i<3
	{
		cbri.cbSize = sizeof (COMMANDBANDSRESTOREINFO);
		CommandBands_GetRestoreInformation(m_hWnd, i, &cbri);
		if (cbri.wID != 0xFFFFFFFF)
		{
			m_Settings.BandInfo[nIndex].dwStyle = cbri.fStyle;
			m_Settings.BandInfo[nIndex].dwWidth = cbri.cxRestored;
			m_Settings.BandInfo[nIndex].dwID = cbri.wID;
			nIndex += 1;
		}
	}

	//旕昞帵懏惈傪庢傝彍偔
	for (i=0; i<3; i++)
	{
		if ((m_Settings.BandInfo[i].dwStyle&RBBS_HIDDEN)==RBBS_HIDDEN)
			m_Settings.BandInfo[i].dwStyle ^= RBBS_HIDDEN;
		if ((m_Settings.BandInfo[i].dwStyle&RBBS_NOGRIPPER)==RBBS_NOGRIPPER)
			m_Settings.BandInfo[i].dwStyle ^= RBBS_NOGRIPPER;
	}

	HKEY hKey = 0;
	DWORD dwDisposition;
	//MOD START TODA (from GSFinder ver.1.99)
	if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_REBAR,
			0, _T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
	//MOD END
	{
		RegSetValueEx(hKey, _T("CmdBands"), 0, REG_BINARY, (LPBYTE)&m_Settings, sizeof(m_Settings));
		
		RECT rc;
		GetBandRect(BANDID_ADDRESSBAR, &rc);
		RegSetValueEx(hKey, _T("AddrPos"), 0, REG_BINARY, (LPBYTE)&rc, sizeof(rc));
		GetBandRect(BANDID_TOOLBAR, &rc);
		RegSetValueEx(hKey, _T("ToolPos"), 0, REG_BINARY, (LPBYTE)&rc, sizeof(rc));

		RegCloseKey(hKey);
	}
}
///////////////////////////////////////////////////////////////
void CCmdBands::GetSettings()
{
	HKEY hKey = 0;
	DWORD dwDisposition;
	//MOD START TODA (from GSFinder ver.1.99)
	if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_REBAR,
		0, _T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)

⌨️ 快捷键说明

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