📄 mainfrm.cpp
字号:
UINT toolbarlabels[]=
{
IDS_NEW_WINDOW,
0,
IDS_BACK,
IDS_FORWARD,
IDS_STOP,
IDS_REFRESH,
IDS_HOME,
0,
IDS_SEARCH,
IDS_FAVORITES,
IDS_TITLE_HIS,
IDS_TITLE_SHELL,
IDS_TITLE_RESOURCE,
0,
IDS_ROWSE_MODE,
IDS_PRINT,
ID_TOOLS_EMAIL,
IDS_FONT,
IDS_ENCODE,
IDS_IMAGE,
ID_VIEW_FULLSCREEN,
IDS_VTILE,
IDS_HTILE,
IDS_WEB_PROXY,
IDS_PROXY,
ID_FILE_WORKOFFLINE,
0,
ID_FILE_OPENF,
ID_EDIT_EDIT,
ID_FILE_STOP_OPENALL,
IDS_AUTO_SCROLL,
IDS_SAVE_AS,
IDS_UNDO_CLOSE,
IDS_AUTOFILTER,
};
static UINT toolbarbuttonstyles[] =
{
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBBS_SEPARATOR,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBBS_SEPARATOR,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBBS_SEPARATOR,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBBS_SEPARATOR,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
};
UINT toolbarbuttonimgs[] =
{
9,0,0,1,2,3,4,0,5,6,12,23,24,0,25,7,13,8,14,10,11,15,16,17,18,19,0,21,20,22,26,28,27,29,
};
UINT toolbarselectivelabels[]=
{
0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
nTotalTabs = 0;
m_pwndExpObj = NULL;
m_bFullScreenMode = FALSE;
m_bFavDirty=FALSE;
m_bMultiLineTab = FALSE;
m_tLastRes = m_tLastIPUpdate = CTime::GetCurrentTime();
m_strLastIP = "127.0.0.1";
m_bmBGPic = NULL;
m_tLastRes = m_tLastWinsUpdate = m_tLastProxyUpdate = CTime::GetCurrentTime();
// m_bWin9x = TRUE;
m_bNoModemSpeed = FALSE;
m_bRemPsw = TRUE;
m_nProtectNum = 0;
m_nTimerID = 0;
m_nUpdateTimer = 0;
m_bRemPsw = TRUE;
m_hEdit = NULL;
undoStart = 0;
undoEnd = 0;
hResInst = NULL;
nDelay = 0;
m_nNeedIB = 0;
m_bIsSecure = m_bLastIsSecure = FALSE;
Expstr1.LoadString(IDS_TITLE_SEARCH);
Expstr2.LoadString(IDS_TITLE_HIS);
Expstr3.LoadString(IDS_TITLE_FAVORITE);
Expstr4.LoadString(IDS_TITLE_SHELL);
Expstr5.LoadString(IDS_TITLE_RESOURCE);
m_bSaveConfig = FALSE;
nWin=0;
m_nSwitch = 0;
CString str="yes";
bstryes = str.AllocSysString();
m_tDBClick.LowPart = 0;
dbtime=(float)GetDoubleClickTime()/1000;
}
CMainFrame::~CMainFrame()
{
try{
m_astrFavoriteFolders.RemoveAll();
// m_astrFavoriteURLs.RemoveAll();
// m_astrPopup.RemoveAll();
// m_lstrUtilCmds.RemoveAll();
// m_lstrUtilNames.RemoveAll();
m_ExternalUtilList.RemoveAll();
// m_astrProxy.RemoveAll();
// m_astrWebProxy.RemoveAll();
m_astrBGPics.RemoveAll();
m_aProxyCategories.RemoveAll();
if(m_pwndExpObj)
delete m_pwndExpObj;
if(m_bmBGPic)
DeleteObject(m_bmBGPic);
if(m_nTimerID)
KillTimer(m_nTimerID);
if(m_nAnimateIconTimer)
KillTimer(m_nAnimateIconTimer);
SysFreeString(bstryes);
pMainFrame = NULL;
}catch(...)
{
}
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
// ReleaseMutex(m_hMutex);
if (!AfxOleInit()) {
TRACE("Fail in OLE initialating\n");
}
CImageList img;
CString str;
::SetProp(m_hWnd, AfxGetApp()->m_pszAppName, (HANDLE)1);
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//read backgorund pic name
m_strBGPic = AfxGetApp()->GetProfileString("Settings", "Background", "");
CBitmap bitmap;
CRect rectToolBar;
//========create main menu
CMenuBar& mb = m_wndMenuBar;
VERIFY(mb.CreateEx(this));
mb.ModifyStyle(0, TBSTYLE_TRANSPARENT|TBSTYLE_FLAT| TBSTYLE_LIST);
mb.LoadMenu(IDR_MAINFRAME);
bitmap.LoadBitmap(IDB_BITMAP1);
m_wndMenuBar.m_ImgList.Create(16, 16, ILC_COLORDDB|ILC_MASK, 7, 1);
m_wndMenuBar.m_ImgList.Add(&bitmap, RGB(255,0,255));
bitmap.Detach();
GetMenu()->CheckMenuItem(ID_VIEW_MENUBAR, MF_CHECKED);
//============
//============sysmenu
if (!m_SysMenuBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
img.Create(IDB_BITMAP6, 12, 0, RGB(255, 255, 255));
m_SysMenuBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();
m_SysMenuBar.SetButtons(NULL, 8);
m_SysMenuBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT );
m_SysMenuBar.SetButtonInfo(0, ID_TAB_PRE, TBSTYLE_BUTTON, 5);
m_SysMenuBar.SetButtonInfo(1, ID_TAB_NEXT, TBSTYLE_BUTTON, 4);
m_SysMenuBar.SetButtonInfo(2,0,TBBS_SEPARATOR,0);
m_SysMenuBar.SetButtonInfo(3, ID_FILE_CLOSEALL, TBSTYLE_BUTTON, 3);
m_SysMenuBar.SetButtonInfo(4,0,TBBS_SEPARATOR,0);
m_SysMenuBar.SetButtonInfo(5, ID_WINDOW_MIN, TBSTYLE_BUTTON, 0);
m_SysMenuBar.SetButtonInfo(6, ID_WINDOW_RESTOR, TBSTYLE_BUTTON, 1);
m_SysMenuBar.SetButtonInfo(7, ID_FILE_CLOSE_1, TBSTYLE_BUTTON, 2);
m_SysMenuBar.SetBarStyle(m_SysMenuBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);
//=============
//=============link bar
if (!m_LinkBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
bitmap.LoadBitmap(IDB_BITMAP1);
img.Create(16, 16, ILC_COLORDDB|ILC_MASK, 7, 1);
img.Add(&bitmap, RGB(255,0,255));
m_LinkBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();
bitmap.Detach();
m_LinkBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_LIST|TBSTYLE_TOOLTIPS|CCS_NORESIZE );
m_LinkBar.SetBarStyle(m_LinkBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
//add open all links
int iString;
TBBUTTON tbb;
str.LoadString(IDS_LINKS);
memset(&tbb, 0, sizeof(tbb));
iString = m_LinkBar.GetToolBarCtrl().AddStrings(str);
tbb.iString = iString;
tbb.fsState = TBSTATE_ENABLED;
tbb.fsStyle = TBSTYLE_AUTOSIZE;
tbb.iBitmap = 3;
tbb.idCommand = ID_TOOLS_OPENALLLINKS;
VERIFY(m_LinkBar.GetToolBarCtrl().AddButtons(1, &tbb));
//================
//================Favorite bar
//compact fav bar
bCompactFavBar = AfxGetApp()->GetProfileInt("Settings", "CompactFavBar", FALSE);
if (!m_FavBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if(!bCompactFavBar)
{
bitmap.LoadBitmap(IDB_BITMAP1);
img.Create(16, 16, ILC_COLORDDB|ILC_MASK, 7, 1);
img.Add(&bitmap, RGB(255,0,255));
m_FavBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();
bitmap.Detach();
}
else
m_FavBar.GetToolBarCtrl().SetImageList(NULL);
m_FavBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_LIST|TBSTYLE_TOOLTIPS );
m_FavBar.SetBarStyle(m_FavBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
//===================
//max menu size
m_nMenuWidth = AfxGetApp()->GetProfileInt("Settings", "MenuSize", 26);
m_bDisplayOpenAll = AfxGetApp()->GetProfileInt("Settings", "DisplayOpenAll", TRUE);
//single column menu
bSingleMenu = AfxGetApp()->GetProfileInt("Settings", "SingleMenu", FALSE);
// first get rid of bogus submenu items.
InitFavorites();
m_LinkBar.GetToolBarCtrl().GetToolTips()->UpdateTipText(ID_TOOLS_OPENALLLINKS, &m_LinkBar, ID_TOOLS_OPENALLLINKS);
GetMenu()->CheckMenuItem(ID_VIEW_LINKS, MF_CHECKED);
GetMenu()->CheckMenuItem(ID_VIEW_FAVS, MF_CHECKED);
//============Tool Bar
if (!m_wndToolBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |TBSTYLE_TOOLTIPS );
m_wndToolBar.ModifyStyleEx(0, WS_EX_TOOLWINDOW);
m_wndToolBar.GetToolBarCtrl().SetButtonWidth(22, 150);
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
// Create and set the hot toolbar image list.
m_bSmallToolBar = AfxGetApp()->GetProfileInt("Settings", "SmallToolbar", 0);
//====================
//===============AddressBar
if (!m_AddressBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
bitmap.LoadBitmap(IDB_BITMAP7);
img.Create(16, 16, ILC_COLORDDB|ILC_MASK, 1, 1);
img.Add(&bitmap, RGB(255,0,255));
m_AddressBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)img.m_hImageList);
img.Detach();
bitmap.Detach();
bitmap.LoadBitmap(IDB_BITMAP8);
img.Create(16, 16, ILC_COLORDDB|ILC_MASK, 1, 1);
img.Add(&bitmap, RGB(255,0,255));
m_AddressBar.SendMessage(TB_SETHOTIMAGELIST, 0, (LPARAM)img.m_hImageList);
img.Detach();
bitmap.Detach();
m_AddressBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |TBSTYLE_TOOLTIPS );
m_AddressBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
m_AddressBar.SetButtonInfo(0, 0, TBBS_SEPARATOR, 0);
m_AddressBar.SetButtonInfo(1, IDOK, TBSTYLE_BUTTON | TBSTYLE_DROPDOWN, 0);
m_AddressBar.GetToolBarCtrl().GetToolTips()->UpdateTipText("Go", &m_AddressBar, IDOK);
m_AddressBar.Init();
//get the reference to the comboboxex.
m_wndAddress = m_AddressBar.GetAddressBox();
GetMenu()->CheckMenuItem(ID_VIEW_ADDRESSBAR, MF_CHECKED);
//load typed URLs
LoadTypedURL();
//=======================
//===============external tool bar
if (!m_ExternalTool.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
GetMenu()->CheckMenuItem(ID_VIEW_EX_TOOL, MF_CHECKED);
m_ExternalTool.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_LIST|TBSTYLE_TOOLTIPS );
m_ExternalTool.SetBarStyle(m_ExternalTool.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
SHFILEINFO shFinfo;
HIMAGELIST hImgList = NULL;
hImgList = (HIMAGELIST)SHGetFileInfo( "C:\\",
0,
&shFinfo,
sizeof( shFinfo ),
SHGFI_SYSICONINDEX |
SHGFI_SMALLICON );
if ( !hImgList )
{
return FALSE;
}
m_ExternalTool.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)hImgList);
//build external toolbar
//get Utils name list
CString wp;
char * tmp;
CExternalUtilItem* eui;
wp = AfxGetApp()->GetProfileString("ExUtils", "name1", NULL);
if(wp == "" || wp.IsEmpty())
{
tmp = NULL;
UINT len;
BOOL r = AfxGetApp()->GetProfileBinary("ExUtils","names", (LPBYTE*)(&tmp), &len);
if(r)
{
//load name list
char *token;
char seps[] = "\n";
token = strtok( tmp, seps);
while( token != NULL )
{
eui = new CExternalUtilItem;
eui->m_strUtilName = token;
/* While there are tokens in "string" */
m_ExternalUtilList.m_UtilList.Add(eui);
/* Get next token: */
token = strtok( NULL, seps );
}
delete[] tmp;
}
//get Utils command list
tmp = NULL;
r = AfxGetApp()->GetProfileBinary("ExUtils","cmds", (LPBYTE*)(&tmp), &len);
if(r)
{
//load pop list
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -