📄 commandbandsppc.cpp
字号:
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);//add by kawa
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_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);
EnableMenuItem(hMenu2, ID_EDIT_CUT, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
EnableMenuItem(hMenu2, ID_EDIT_COPY, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
EnableMenuItem(hMenu2, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
EnableMenuItem(hMenu2, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED); //mod by kawa
//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);
}
//MOD END
//ADD START TODA (専嶕偺桳岠/柍岠敾掕)
SetEnableSearchSelected(hMenu, g_MainWnd.m_ListView.m_szCurrentFolder);
//ADD END
}
//ADD START TODA (僣儕乕價儏乕梡儊僯儏乕愝掕)
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableItemSelected2()
{
//HMENU hMenu = (HMENU)SendMessage(m_hWnd, SHCMBM_GETMENU, 0, 0);
HMENU hMenu = (HMENU)SendMessage(m_hWnd, SHCMBM_GETSUBMENU, 0, ID_FILE); //mod by kawa
HMENU hMenu2 = (HMENU)SendMessage(m_hWnd, SHCMBM_GETSUBMENU, 0, ID_EDIT); //add by kawa
//儊僯儏乕傪桳岠偵
EnableMenuItem(hMenu, ID_FILE_OPEN, 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_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);
EnableMenuItem(hMenu2, ID_EDIT_CUT, MF_BYCOMMAND|MF_ENABLED);//mod by kawa
EnableMenuItem(hMenu2, ID_EDIT_COPY, MF_BYCOMMAND|MF_ENABLED);//mod by kawa
EnableMenuItem(hMenu2, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_ENABLED); //mod by kawa
EnableMenuItem(hMenu2, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_ENABLED); //mod by kawa
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);
//SetEnableCompressSelected(GetSubMenu(hMenu, 0), 0, 8, g_MainWnd.m_ListView.m_Settings.nCompDLL);
SetEnableCompressSelected(hMenu, GetSubMenu(hMenu, 0), 0, 8, g_MainWnd.m_ListView.m_Settings.nCompDLL);//mod by kawa
//僣乕儖僶乕傪桳岠偵
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 = (HMENU)SendMessage(m_hWnd, SHCMBM_GETMENU, 0, 0);
HMENU hMenu = (HMENU)SendMessage(m_hWnd, SHCMBM_GETSUBMENU, 0, ID_FILE); // mod by kawa
HMENU hMenu2 = (HMENU)SendMessage(m_hWnd, SHCMBM_GETSUBMENU, 0, ID_EDIT); // add by kawa
//儊僯儏乕傪桳岠偵
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_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(hMenu2, ID_EDIT_COPY_FILE_NAME, MF_BYCOMMAND|MF_GRAYED);//mod by kawa
EnableMenuItem(hMenu2, ID_EDIT_COPY_FILE_PATH, MF_BYCOMMAND|MF_GRAYED);// mod by kawa
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::SaveSettings()
{
HKEY hKey = 0;
DWORD dwDisposition;
//僉乕愝掕
if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_REBAR,
0, _T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition)==ERROR_SUCCESS)
{
RegSetValueEx(hKey, _T("CmdBands"), 0, REG_BINARY, (LPBYTE)&m_Settings, sizeof(m_Settings));
RegCloseKey(hKey);
}
}
///////////////////////////////////////////////////////////////
void CCmdBands::GetSettings()
{
HKEY hKey = 0;
DWORD dwDisposition;
//僉乕庢摼
if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_REBAR,
0, _T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition)==ERROR_SUCCESS)
{
DWORD dwType;
BYTE* lpData;
DWORD dwDataSize;
//m_Settings
dwType = REG_BINARY;
lpData = new BYTE[sizeof(m_Settings)];
dwDataSize = sizeof(m_Settings);
if (RegQueryValueEx(hKey, _T("CmdBands"), 0, &dwType, lpData, &dwDataSize) == ERROR_SUCCESS)
memcpy(&m_Settings, lpData, sizeof(m_Settings));
delete[] lpData;
RegCloseKey(hKey);
}
}
///////////////////////////////////////////////////////////////
void CCmdBands::CreateMenuBar(HWND hwndParent)
{
SHMENUBARINFO mbi;
memset(&mbi, 0, sizeof(SHMENUBARINFO));
mbi.cbSize = sizeof(SHMENUBARINFO);
mbi.hwndParent = g_MainWnd.m_hWnd;
mbi.nToolBarId = IDR_MAINFRAME; //menu
mbi.hInstRes = g_hInst;
mbi.nBmpId = 0;
mbi.cBmpImages = 0;
if (!SHCreateMenuBar(&mbi))
{
MessageBox(g_MainWnd.m_hWnd, L"SHCreateMenuBar Failed", L"Error", MB_OK);
}
m_hWnd = mbi.hwndMB;
}
///////////////////////////////////////////////////////////////
void CCmdBands::CreateToolBar(HWND hwndParent)
{
m_hToolbar= CommandBar_Create(g_hInst, hwndParent, 0);
int nNum = 9;
for (int i=0; i<nNum; i++)
g_lpszToolTips[i] = g_szToolTipsStrings[i];
CommandBar_AddBitmap(m_hToolbar, g_hInst, IDR_TOOLBAR, nNum, 0, 0);
CommandBar_AddToolTips(m_hToolbar, nNum, g_lpszToolTips);
//iBitmap, idCommand, fsState, fsStyle, dwData, iString
TBBUTTON tbbMain[] = {
{0, ID_GO_BACK, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{1, ID_GO_FRONT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 1},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{2, ID_FILE_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 2},
{3, ID_FILE_PROPERTY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 3},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{4, ID_EDIT_CUT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 4},
{5, ID_EDIT_COPY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 5},
{6, ID_EDIT_PASTE, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 6},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{7, ID_VIEW_STYLE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 7},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{8, IDC_BTN_GOTOFOLDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 8}, //ADD TODA
// {0, ID_FILE_CREATEFOLDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0}, //DEL TODA
// {7, ID_TOOL_MYDOCUMENTS, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 7}, //DEL TODA
// {8, ID_TOOL_STARTMENU, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 8}, //DEL TODA
};
CommandBar_AddButtons(m_hToolbar, sizeof(tbbMain) / sizeof(TBBUTTON), tbbMain);
SetWindowLong(m_hToolbar, GWL_STYLE, GetWindowLong(m_hToolbar, GWL_STYLE)|CCS_NOPARENTALIGN);
//MOD END
}
///////////////////////////////////////////////////////////////
void CCmdBands::CreateAddressBar(HWND hwndParent)
{
m_hAddressbar= CommandBar_Create(g_hInst, hwndParent, 0);
m_hComboBox = CommandBar_InsertComboBox(m_hAddressbar, g_hInst, GetSystemMetrics(SM_CXSCREEN) - 2, CBS_AUTOHSCROLL|CBS_DROPDOWN|WS_VSCROLL, 0, NULL);
SendMessage(m_hComboBox, CB_SETEXTENDEDUI, TRUE, 0);
HWND hwndEdit = GetWindow(m_hComboBox, GW_CHILD);
Org_CmbEditProc = (WNDPROC)GetWindowLong(hwndEdit, GWL_WNDPROC);
SetWindowLong(hwndEdit, GWL_WNDPROC, (DWORD)CmbEditProc);
MoveWindow(m_hAddressbar, 0, 0, GetSystemMetrics(SM_CXSCREEN), 22, TRUE);
}
//ADD START TODA
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableEditPasteBef()
{
SetEnableEditPaste(FALSE);
//僋儕僢僾儃乕僪僆乕僾儞
if(OpenClipboard(NULL)) {
//僋儕僢僾儃乕僪偵僨乕僞偑偁傞応崌偼桳岠
HANDLE hClipText = GetClipboardData(CF_UNICODETEXT);
if(hClipText)
SetEnableEditPaste(TRUE, FALSE);
//僋儕僢僾儃乕僪僋儘乕僘
CloseClipboard();
}
}
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableEditPasteAft()
{
//僐僺乕偟偨僼傽僀儖偵偰儊僯儏乕偺桳岠/柍岠愝掕
SetEnableEditPaste((g_MainWnd.m_ListView.m_lpliinfo?TRUE:FALSE));
}
//ADD END
///////////////////////////////////////////////////////////////
void CCmdBands::SetEnableEditPaste(BOOL bEnable, BOOL bShortCut) //MOD TODA
{
HMENU hMenu = (HMENU)SendMessage(m_hWnd, SHCMBM_GETSUBMENU, 0, ID_EDIT);
EnableMenuItem(hMenu, ID_EDIT_PASTE, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
//MOD START TODA
if(bShortCut)
EnableMenuItem(hMenu, ID_EDIT_PASTE_SHORTCUT, bEnable?MF_BYCOMMAND|MF_ENABLED:MF_BYCOMMAND|MF_GRAYED);
//MOD END
SendMessage(m_hToolbar, TB_SETSTATE, ID_EDIT_PASTE, bEnable ? TBSTATE_ENABLED : TBSTATE_INDETERMINATE);
}
///////////////////////////////////////////////////////////////
void CCmdBands::SaveRecent()
{
HKEY hKey = 0;
DWORD dwDisposition;
if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_RECENT, 0,
_T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
{
TCHAR szName[32];
TCHAR szData[MAX_PATH];
for (int i = 0; i < 8; i++) {
wsprintf(szName, _T("Recent%d"), i + 1);
if (SendMessage(m_hComboBox, CB_GETLBTEXT, i, (LPARAM)szData) != CB_ERR)
RegSetValueEx(hKey, szName, 0, REG_SZ, (LPBYTE)szData, (wcslen(szData) + 1) * sizeof(TCHAR));
}
RegCloseKey(hKey);
}
}
///////////////////////////////////////////////////////////////
void CCmdBands::GetRecent()
{
if (m_hComboBox)
{
HKEY hKey = 0;
DWORD dwDisposition;
if (RegCreateKeyEx(HKEY_CURRENT_USER, REG_KEY_RECENT, 0,
_T(""), REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition) == ERROR_SUCCESS)
{
DWORD dwDataSize;
DWORD dwType = REG_SZ;
BYTE bData[MAX_PATH * sizeof(TCHAR)];
TCHAR szName[32];
for (int i = 8 ; i > 0; i--)
{
dwDataSize = sizeof(bData);
wsprintf(szName, _T("Recent%d"), i);
if (RegQueryValueEx(hKey, szName, 0, &dwType, bData, &dwDataSize) == ERROR_SUCCESS)
{
if (wcslen((LPTSTR)bData))
SendMessage(m_hComboBox, CB_INSERTSTRING, 0, (LPARAM)bData);
}
}
RegCloseKey(hKey);
}
}
}
///////////////////////////////////////////////////////////////
void CCmdBands::OnViewToolBar()
{
m_Settings.bShowToolBar = !m_Settings.bShowToolBar;
ShowWindow(m_hToolbar, m_Settings.bShowToolBar?SW_SHOW:SW_HIDE);
SetCheckViewToolBar();
g_MainWnd.RecalcLayout();
}
///////////////////////////////////////////////////////////////
void CCmdBands::OnViewAddressBar()
{
m_Settings.bShowAddressBar = !m_Settings.bShowAddressBar;
ShowWindow(m_hAddressbar, m_Settings.bShowAddressBar?SW_SHOW:SW_HIDE);
SetCheckViewAddressBar();
g_MainWnd.RecalcLayout();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -