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

📄 mainfrm.cpp

📁 myie的源程序是用VC++写自已可以扩搌使用
💻 CPP
📖 第 1 页 / 共 5 页
字号:
{
	m_astrFavoriteFolders.RemoveAll();
	m_astrFavoriteURLs.RemoveAll();
	m_astrPopup.RemoveAll();
	m_lstrUtilCmds.RemoveAll();
	m_lstrUtilNames.RemoveAll();
	m_astrProxy.RemoveAll();
	m_astrWebProxy.RemoveAll();
	m_astrBGPics.RemoveAll();

	delete m_pwndExpObj;

	if(m_bmBGPic)
		DeleteObject(m_bmBGPic);

	if(m_nTimerID)
		KillTimer(m_nTimerID);
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
//	ReleaseMutex(m_hMutex);

	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.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 );

	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);

	//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 normal toolbar image list.
	bitmap.LoadBitmap(IDB_COLDTOOLBAR);
	img.Create(21, 20, ILC_COLORDDB|ILC_MASK, 20, 1);
	img.Add(&bitmap, RGB(255,0,255));
	m_wndToolBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)img.m_hImageList);
	img.Detach();
	bitmap.Detach();

	// Create and set the hot toolbar image list.
	bitmap.LoadBitmap(IDB_HOTTOOLBAR);
	img.Create(21, 20, ILC_COLORDDB|ILC_MASK, 20, 1);
	img.Add(&bitmap, RGB(255,0,255));
	m_wndToolBar.SendMessage(TB_SETHOTIMAGELIST, 0, (LPARAM)img.m_hImageList);
	img.Detach();
	bitmap.Detach();
//====================

//===============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.SetButtonInfo(0, 0, TBBS_SEPARATOR, 0);
	m_AddressBar.SetButtonInfo(1, IDOK, TBSTYLE_BUTTON, 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;
	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 pop list
			char *token;
			char seps[] = "\n";
			token = strtok( tmp, seps);
			while( token != NULL )
			{
				  /* While there are tokens in "string" */
				  m_lstrUtilNames.AddTail(token);
				  /* 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
			char *token;
			char seps[] = "\n";
			token = strtok( tmp, seps);
			while( token != NULL )
			{
				  /* While there are tokens in "string" */
				  m_lstrUtilCmds.AddTail(token);
				  /* Get next token: */
				  token = strtok( NULL, seps );

				  //add start up
				  m_lbUtilStart.AddTail(FALSE);
			}
			delete[] tmp;

		}
		int pn=m_lstrUtilNames.GetCount()-m_lstrUtilCmds.GetCount();
		if(pn>0)
		{
			for(int i=0; i<pn;i++)
				m_lstrUtilCmds.AddTail("");
		}
	}
	else
	{
		//new format
		char Keyname1[10] = "name", Keyname2[10] = "cmds", Keyname3[10] = "sta";
		CString cmd;
		BOOL bstart;
		int i=1;
		cmd = AfxGetApp()->GetProfileString("ExUtils", "cmds1", NULL);
		bstart = AfxGetApp()->GetProfileInt("ExUtils", "sta1", FALSE);
		while(wp != "" && !wp.IsEmpty())
		{
			m_lstrUtilNames.AddTail(wp);
			m_lstrUtilCmds.AddTail("\""+cmd+"\"");
			m_lbUtilStart.AddTail(bstart);
			i++;
			itoa(i, Keyname1+4, 10);
			itoa(i, Keyname2+4, 10);
			itoa(i, Keyname3+3, 10);
			wp = AfxGetApp()->GetProfileString("ExUtils", Keyname1, NULL);
			cmd = AfxGetApp()->GetProfileString("ExUtils", Keyname2, NULL);
			bstart = AfxGetApp()->GetProfileInt("ExUtils", Keyname3, FALSE);
		}
	}

	BuildUtilMenu();
// ======================OK


//==========create rebar

	if (!m_wndReBar.Create(this,RBS_BANDBORDERS|RBS_DBLCLKTOGGLE | RBS_REGISTERDROP |RBS_VARHEIGHT ,CCS_NODIVIDER |CCS_NOPARENTALIGN |WS_BORDER |WS_CHILD |WS_CLIPCHILDREN |WS_CLIPSIBLINGS |WS_VISIBLE | CBRS_TOP))
	{
		return -1;      // fail to create
	}

//========add to rebar
	m_wndReBar.AddBar(&m_wndMenuBar, NULL,NULL, RBBS_FIXEDBMP | RBBS_BREAK |RBBS_GRIPPERALWAYS|RBBS_USECHEVRON);
	m_wndReBar.AddBar(&m_SysMenuBar, NULL, NULL, RBBS_FIXEDBMP |RBBS_GRIPPERALWAYS);
	m_wndReBar.AddBar(&m_wndToolBar, NULL,NULL, RBBS_FIXEDBMP | RBBS_BREAK |RBBS_GRIPPERALWAYS|RBBS_USECHEVRON);
	str.LoadString(IDS_ADDRESS);
	m_wndReBar.AddBar(&m_AddressBar, str,NULL, RBBS_FIXEDBMP | RBBS_BREAK |RBBS_GRIPPERALWAYS );


	// set up min/max sizes and ideal sizes for pieces of the rebar
	REBARBANDINFO rbbi;
	
	m_wndMenuBar.GetItemRect(1, &rectToolBar);
	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE|RBBIM_ID;//|RBBIM_STYLE
	rbbi.wID = ID_MENU_BAR;
	rbbi.cxMinChild = rectToolBar.Width();
	rbbi.cyMinChild = rectToolBar.Height();
	m_wndMenuBar.GetToolBarCtrl().GetItemRect(m_wndMenuBar.GetToolBarCtrl().GetButtonCount()-1,&rectToolBar);
	rbbi.cx = rbbi.cxIdeal = rectToolBar.right;
	m_wndReBar.GetReBarCtrl().SetBandInfo(0, &rbbi);

	m_SysMenuBar.GetItemRect(0, &rectToolBar);
	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE|RBBIM_ID;//|RBBIM_STYLE
	rbbi.wID = ID_SYSMENU_BAR;
	rbbi.cyMinChild = rectToolBar.Height();
	m_SysMenuBar.GetToolBarCtrl().GetItemRect(m_SysMenuBar.GetToolBarCtrl().GetButtonCount()-1,&rectToolBar);
	rbbi.cxMinChild = rbbi.cx = rbbi.cxIdeal = rectToolBar.right+2;
	m_wndReBar.GetReBarCtrl().SetBandInfo(1, &rbbi);

	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_ID ;//|RBBIM_STYLE
	rbbi.wID = ID_VIEW_TOOLBAR;
	m_wndReBar.GetReBarCtrl().SetBandInfo(2, &rbbi);
	m_bTextLabel=AfxGetApp()->GetProfileInt("Settings", "TextLabel", FALSE);
	InitialToolBar();
	rbbi.cxMinChild = 0;

	CRect rectAddress;

	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE| RBBIM_ID;
	rbbi.wID = ID_VIEW_ADDRESSBAR;
	m_wndAddress->GetEditCtrl()->GetWindowRect(&rectAddress);
	rbbi.cyMinChild = rectAddress.Height() + 10;
	rbbi.cxMinChild = 20;
	rbbi.cx = rbbi.cxIdeal = 20;
	m_wndReBar.GetReBarCtrl().SetBandInfo(3, &rbbi);


	if (!m_wndStatusBar.Create(this) ||
		!m_wndStatusBar.SetIndicators(indicators,
		  sizeof(indicators)/sizeof(UINT)))
	{
		TRACE0("Failed to create status bar\n");
		return -1;      // fail to create
	}
	m_wndStatusBar.SetProgressBarWidth(80);
	m_wndStatusBar.SetRange(0,100);
	m_wndStatusBar.SetPaneStyle(ID_SEPARATOR, SBPS_STRETCH);
	if(AfxGetApp()->GetProfileInt("Bands", "Status", 1)==0)
		m_wndStatusBar.ShowWindow(SW_HIDE);


	//link bar
	// set up toolbar button sizes
	m_LinkBar.GetItemRect(0, &rectToolBar);

	m_wndReBar.AddBar(&m_LinkBar, NULL,NULL, RBBS_FIXEDBMP | RBBS_BREAK |RBBS_GRIPPERALWAYS|RBBS_USECHEVRON);

	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE |RBBIM_ID ;
	rbbi.wID = ID_VIEW_LINKS;
	rbbi.cxMinChild = rectToolBar.Width()+2;
	rbbi.cyMinChild = 22;
	m_LinkBar.GetToolBarCtrl().GetItemRect(m_LinkBar.GetToolBarCtrl().GetButtonCount()-1,&rectToolBar);
	rbbi.cx = rbbi.cxIdeal = rectToolBar.right;
	m_wndReBar.GetReBarCtrl().SetBandInfo(4, &rbbi);

	//Favorate bar
	// set up toolbar button sizes
	m_FavBar.GetItemRect(0, &rectToolBar);

	str.LoadString(IDS_FAVORITES);
	m_wndReBar.AddBar(&m_FavBar, str,NULL, RBBS_FIXEDBMP | RBBS_BREAK |RBBS_GRIPPERALWAYS|RBBS_USECHEVRON);

	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE |RBBIM_ID ;
	rbbi.wID = ID_VIEW_FAVS;
	rbbi.cxMinChild = rectToolBar.Width()+2;
	rbbi.cyMinChild = 22;
	m_FavBar.GetToolBarCtrl().GetItemRect(m_FavBar.GetToolBarCtrl().GetButtonCount()-1,&rectToolBar);
	rbbi.cx = rbbi.cxIdeal = rectToolBar.right;
	m_wndReBar.GetReBarCtrl().SetBandInfo(5, &rbbi);

	//exteranl tool bar
	// set up toolbar button sizes
	m_ExternalTool.GetItemRect(0, &rectToolBar);

	str.LoadString(IDS_EX_TOOL);
	m_wndReBar.AddBar(&m_ExternalTool, str,NULL, RBBS_FIXEDBMP | RBBS_BREAK |RBBS_GRIPPERALWAYS|RBBS_USECHEVRON);

	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE |RBBIM_ID ;
	rbbi.wID = ID_VIEW_EX_TOOL;
	rbbi.cxMinChild = rectToolBar.Width()+2;
	rbbi.cyMinChild = 22;
	m_ExternalTool.GetToolBarCtrl().GetItemRect(m_ExternalTool.GetToolBarCtrl().GetButtonCount()-1,&rectToolBar);
	/*rbbi.cx =*/ rbbi.cxIdeal = rectToolBar.right;
	m_wndReBar.GetReBarCtrl().SetBandInfo(6, &rbbi);

	
	//create bottom bar
	if (!m_wndReBar2.Create(this,RBS_BANDBORDERS,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS| WS_CLIPCHILDREN | CBRS_BOTTOM))
	{
		TRACE0("Failed to create rebar\n");

⌨️ 快捷键说明

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