📄 commandbands.cpp
字号:
//MOD END
{
DWORD dwType = REG_BINARY;
BYTE* lpData = new BYTE[sizeof(m_Settings)];
DWORD dwDataSize = sizeof(m_Settings);
//Bar1
if (RegQueryValueEx(hKey, _T("CmdBands"), 0, &dwType, lpData, &dwDataSize) == ERROR_SUCCESS)
memcpy(&m_Settings, lpData, sizeof(m_Settings));
delete[] lpData;
//AddrPos
lpData = new BYTE[sizeof(m_rcAddr)];
dwDataSize = sizeof(m_rcAddr);
if (RegQueryValueEx(hKey, _T("AddrPos"), 0, &dwType, lpData, &dwDataSize) == ERROR_SUCCESS)
memcpy(&m_rcAddr, lpData, sizeof(m_rcAddr));
delete[] lpData;
//m_rcTool
lpData = new BYTE[sizeof(m_rcTool)];
dwDataSize = sizeof(m_rcTool);
if (RegQueryValueEx(hKey, _T("m_rcTool"), 0, &dwType, lpData, &dwDataSize) == ERROR_SUCCESS)
memcpy(&m_rcTool, lpData, sizeof(m_rcTool));
delete[] lpData;
RegCloseKey(hKey);
}
//惓摉惈僠僃僢僋
if (m_Settings.BandInfo[0].dwID == m_Settings.BandInfo[1].dwID ||
m_Settings.BandInfo[1].dwID == m_Settings.BandInfo[2].dwID ||
m_Settings.BandInfo[2].dwID == m_Settings.BandInfo[0].dwID ||
m_Settings.BandInfo[0].dwID > 2 ||
m_Settings.BandInfo[1].dwID > 2 ||
m_Settings.BandInfo[2].dwID > 2)
{
m_Settings.BandInfo[0].dwStyle = RBBS_CHILDEDGE;
m_Settings.BandInfo[0].dwWidth = 230;
m_Settings.BandInfo[0].dwID = 0;
m_Settings.BandInfo[1].dwStyle = RBBS_CHILDEDGE;
m_Settings.BandInfo[1].dwWidth = 140;
m_Settings.BandInfo[1].dwID = 1;
m_Settings.BandInfo[2].dwStyle = RBBS_CHILDEDGE | RBBS_BREAK;
m_Settings.BandInfo[2].dwWidth = 140;
m_Settings.BandInfo[2].dwID = 2;
}
}
///////////////////////////////////////////////////////////////
void CCmdBands::CreateMenuBar(HWND hCB)
{
#ifdef __PALMSIZE_PC
int nNum = 5;
for (int i = 0; i < nNum; i++)
g_lpszTips[i] = g_szTipsStrings[i];
CommandBar_AddBitmap(hCB, g_hInst, IDR_MAINFRAME, nNum, 0, 0);
CommandBar_AddToolTips(hCB, nNum, g_lpszTips);
//iBitmap, idCommand, fsState, fsStyle, dwData, iString
TBBUTTON tbbMain[] = {
{0, ID_VIEW_UPFOLDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 1},
{1, ID_VIEW_UPDATE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 2},
{2, ID_VIEW_FOLDER, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 3}, //MOD TODA BUTTON->CHECK
{3, ID_EDIT_CONTROL_ON, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 4},
{4, ID_VIEW_TOOLBAR, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 5}
};
CommandBar_AddButtons(hCB, sizeof(tbbMain) / sizeof(TBBUTTON), tbbMain);
//僗僞僀儖傪曄峏 - 儃僞儞傪僼儔僢僩偵
SetWindowLong(hCB, GWL_STYLE, GetWindowLong(hCB, GWL_STYLE)|TBSTYLE_FLAT);
m_hMenubar2 = hCB;
#endif
CommandBar_InsertMenubar(hCB, g_hInst, IDR_MAINFRAME, 0);
m_hMenubar = hCB;
HWND hwndMenu = GetWindow(hCB, GW_CHILD);
SetWindowPos(hwndMenu, 0, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
}
///////////////////////////////////////////////////////////////
void CCmdBands::CreateToolBar(HWND hCB)
{
#ifdef __PALMSIZE_PC
int nTop = 6;
int nNum = 9;
for (int i = nTop; i < (nTop+nNum); i++)
g_lpszTips[i] = g_szTipsStrings[i];
CommandBar_AddBitmap(hCB, g_hInst, IDR_TOOLBAR, nNum, 0, 0);
CommandBar_AddToolTips(hCB, nNum, &g_lpszTips[nTop]);
//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},
{2, ID_FILE_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 2},
{3, ID_FILE_PROPERTY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 3},
{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},
{7, ID_VIEW_STYLE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 7},
{8, IDC_BTN_GOTOFOLDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 8},
};
#else
//MOD START TODA (僣乕儖儃僞儞捛壛 10->13)
int nNum = 13;
for (int i = 0; i < nNum; i++)
g_lpszTips[i] = g_szTipsStrings[i];
CommandBar_AddBitmap(hCB, g_hInst, IDR_MAINFRAME, nNum, 0, 0);
CommandBar_AddToolTips(hCB, nNum, g_lpszTips);
//MOD END
//iBitmap, idCommand, fsState, fsStyle, dwData, iString
TBBUTTON tbbMain[] = {
//MOD START TODA (僣乕儖儃僞儞捛壛/儃僞儞埵抲廋惓)
{0, ID_GO_BACK, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0},
{1, ID_GO_FRONT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 1},
{2, ID_VIEW_UPFOLDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 2},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{3, ID_FILE_CREATEFOLDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 3},
{4, ID_FILE_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 4},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{5, ID_FILE_PROPERTY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 5},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{6, ID_VIEW_UPDATE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 6},
{7, ID_VIEW_FOLDER, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 7},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{8, ID_EDIT_CUT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 8},
{9, ID_EDIT_COPY, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 9},
{10,ID_EDIT_PASTE, TBSTATE_INDETERMINATE, TBSTYLE_BUTTON, 0, 10},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{11,ID_VIEW_STYLE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 11},
{0, NULL, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0},
{12, IDC_BTN_GOTOFOLDER, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 12},
//MOD END
};
#endif
CommandBar_AddButtons(hCB, sizeof(tbbMain) / sizeof(TBBUTTON), tbbMain);
//MOD TODA(僐儊儞僩傾僂僩偺夝彍)
//僗僞僀儖傪曄峏 - 儃僞儞傪僼儔僢僩偵
SetWindowLong(hCB, GWL_STYLE, GetWindowLong(hCB, GWL_STYLE)|TBSTYLE_FLAT);
m_hToolbar = hCB;
}
///////////////////////////////////////////////////////////////
void CCmdBands::CreateAddressBar(HWND hCB)
{
m_hComboBox = CommandBar_InsertComboBox(hCB, g_hInst, 480, 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);
m_hAddrbar = hCB;
}
//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 = CommandBar_GetMenu(m_hMenubar, 0);
//MOD START (from GSFinder ver.1.99)
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);
//MOD END
}
//MOD START TODA (from GSFinder ver.1.99)
///////////////////////////////////////////////////////////////
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 < 5; 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 = 5 ; 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;
ShowBand(BANDID_TOOLBAR, m_Settings.bShowToolBar);
SetCheckViewToolBar();
g_MainWnd.RecalcLayout();
}
///////////////////////////////////////////////////////////////
void CCmdBands::OnViewAddressBar()
{
m_Settings.bShowAddressBar = !m_Settings.bShowAddressBar;
ShowBand(BANDID_ADDRESSBAR, m_Settings.bShowAddressBar);
SetCheckViewAddressBar();
g_MainWnd.RecalcLayout();
}
//MOD END
///////////////////////////////////////////////////////////////
void CCmdBands::ShowBand(UINT wID, BOOL bShow)
{
UINT i=0;
COMMANDBANDSRESTOREINFO cbri;
for (i=0; i<3; i++) //MOD TODA (i<4 -> i<3)
{
cbri.cbSize = sizeof (COMMANDBANDSRESTOREINFO);
CommandBands_GetRestoreInformation(m_hWnd, i, &cbri);
if (cbri.wID == wID)
break;
}
SendMessage(m_hWnd, RB_SHOWBAND, i, bShow);
}
//ADD START TODA
///////////////////////////////////////////////////////////////
void CCmdBands::MoveBand(UINT wID, RECT wRC)
{
UINT i=0;
COMMANDBANDSRESTOREINFO cbri;
for (i=0; i<3; i++) //MOD TODA (i<4 -> i<3)
{
cbri.cbSize = sizeof (COMMANDBANDSRESTOREINFO);
CommandBands_GetRestoreInformation(m_hWnd, i, &cbri);
if (cbri.wID == wID)
break;
}
SetWindowPos(m_hWnd, 0, wRC.left, wRC.top, 0, 0, SWP_NOSIZE|SWP_NOZORDER);
}
///////////////////////////////////////////////////////////////
void CCmdBands::GetBandRect(UINT wID, RECT *pwRC)
{
UINT i=0;
COMMANDBANDSRESTOREINFO cbri;
for (i=0; i<3; i++) //MOD TODA (i<4 -> i<3)
{
cbri.cbSize = sizeof (COMMANDBANDSRESTOREINFO);
CommandBands_GetRestoreInformation(m_hWnd, i, &cbri);
if (cbri.wID == wID)
break;
}
GetWindowRect(m_hWnd, pwRC);
}
//ADD END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -