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

📄 mainfrm.cpp

📁 myie2.4版本的源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:

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 + -