📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "benbenBrowser.h"
#include "benbenBrowserDoc.h"
#include "MainFrm.h"
#include "benbenBrowserView.h"
#include "ChildFrm.h"
#include <initguid.h>
#include "ExDisp.h"
#include "URLLockDlg.h"
#include <afxpriv.h>
#include <wininet.h>
#include "generaldata.h"
#include "OrganizeURLDlg.h"
#include "SetProxyDlg.h"
#include "OpenUrlDlg.h"
#include "tlogstg.h"
#include <Mshtmdid.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
#ifndef CGID_IWebBrowser
// CGID_WebBrowser: {ED016940-BD5B-11cf-BA4E-00C04FD70816}
DEFINE_GUID(CGID_IWebBrowser,0xED016940L,0xBD5B,0x11cf,0xBA,0x4E,0x00,0xC0,0x4F,0xD7,0x08,0x16);
static const IID IID_ITravelLogStg = { 0x7EBFDD80, 0xAD18, 0x11d3, {0xA4,0xC5,0x00,0xC0,0x4F,0x72,0xD6,0xB8}};
#endif
/////////////////////Auto-complete edit and combo, without Platform SDK
////////////////////////////////////
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWndEx)
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_OFFLINE_FILE, OnOfflineFile)
ON_UPDATE_COMMAND_UI(ID_OFFLINE_FILE, OnUpdateOfflineFile)
ON_WM_INITMENUPOPUP()
ON_COMMAND(ID_OPTION_TOOL, OnOptionTool)
ON_COMMAND(ID_SOURCECODE_VIEW, OnSourcecodeView)
ON_COMMAND(ID_FIND_EDIT, OnFindEdit)
ON_COMMAND(ID_ADDTOLOCKLIST_TOOL, OnAddtolocklistTool)
ON_COMMAND(ID_ORGANIZE_FAVORITES, OnOrganizeFavorites)
ON_WM_TIMER()
ON_COMMAND(ID_VIEW_LINKBAR, OnViewLinkbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_LINKBAR, OnUpdateViewLinkbar)
ON_COMMAND(ID_NOREFRESH_VIEW, OnNorefreshView)
ON_UPDATE_COMMAND_UI(ID_NOREFRESH_VIEW, OnUpdateNorefreshView)
ON_COMMAND(ID_AUTOREFRESH5_VIEW, OnAutorefresh5View)
ON_UPDATE_COMMAND_UI(ID_AUTOREFRESH5_VIEW, OnUpdateAutorefresh5View)
ON_COMMAND(ID_AUTOREFRESH15_VIEW, OnAutorefresh15View)
ON_UPDATE_COMMAND_UI(ID_AUTOREFRESH15_VIEW, OnUpdateAutorefresh15View)
ON_COMMAND(ID_AUTOREFRESH30_VIEW, OnAutorefresh30View)
ON_UPDATE_COMMAND_UI(ID_AUTOREFRESH30_VIEW, OnUpdateAutorefresh30View)
ON_COMMAND(ID_AUTOREFRESH1M_VIEW, OnAutorefresh1mView)
ON_UPDATE_COMMAND_UI(ID_AUTOREFRESH1M_VIEW, OnUpdateAutorefresh1mView)
ON_COMMAND(ID_AUTOREFRESH5M_VIEW, OnAutorefresh5mView)
ON_UPDATE_COMMAND_UI(ID_AUTOREFRESH5M_VIEW, OnUpdateAutorefresh5mView)
ON_COMMAND(ID_AUTOREFRESH10M_VIEW, OnAutorefresh10mView)
ON_UPDATE_COMMAND_UI(ID_AUTOREFRESH10M_VIEW, OnUpdateAutorefresh10mView)
ON_COMMAND(ID_AUTOREFRESHONLY_VIEW, OnAutorefreshonlyView)
ON_UPDATE_COMMAND_UI(ID_AUTOREFRESHONLY_VIEW, OnUpdateAutorefreshonlyView)
ON_COMMAND(ID_DOWNLOADIMAGE_TOOL, OnDownloadimageTool)
ON_UPDATE_COMMAND_UI(ID_DOWNLOADIMAGE_TOOL, OnUpdateDownloadimageTool)
ON_COMMAND(ID_DOWNLOADANIMATION_TOOL, OnDownloadanimationTool)
ON_UPDATE_COMMAND_UI(ID_DOWNLOADANIMATION_TOOL, OnUpdateDownloadanimationTool)
ON_COMMAND(ID_DOWNLOADSOUND_TOOL, OnDownloadsoundTool)
ON_UPDATE_COMMAND_UI(ID_DOWNLOADSOUND_TOOL, OnUpdateDownloadsoundTool)
ON_COMMAND(ID_DOWNLOADVIDEO_TOOL, OnDownloadvideoTool)
ON_UPDATE_COMMAND_UI(ID_DOWNLOADVIDEO_TOOL, OnUpdateDownloadvideoTool)
ON_COMMAND(ID_MODIFY_URLLOCK, OnModifyUrllock)
ON_COMMAND(ID_MAILLINK_FILE, OnMaillinkFile)
ON_WM_CLOSE()
ON_COMMAND(ID_SYNCHRONIZE_TOOL, OnSynchronizeTool)
ON_COMMAND(ID_VIEW_COOLBAR, OnViewCoolbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_COOLBAR, OnUpdateViewCoolbar)
ON_COMMAND(ID_ORGANIZESEARCH_TOOL, OnOrganizesearchTool)
ON_COMMAND(ID_SETPROXY_TOOL, OnSetproxyTool)
ON_COMMAND(ID_ORGANIZETRANSLATION_TOOL, OnOrganizetranslationTool)
ON_COMMAND(ID_FILE_NEW_BLANK, OnFileNewBlank)
ON_COMMAND(ID_FILE_NEW_HOME, OnFileNewHome)
ON_COMMAND(ID_FILE_NEW_CURRENT, OnFileNewCurrent)
ON_COMMAND(ID_FILE_NEW_CLIPBOARD, OnFileNewClipboard)
ON_COMMAND(ID_ADDTOFAVORITES_FAVORITE, OnAddtofavoritesFavorite)
ON_COMMAND(ID_FILE_OPENRECENT, OnFileOpenrecent)
ON_COMMAND(ID_WINDOW_CLOSE_ALLNOCUR, OnWindowCloseAllnocur)
ON_COMMAND(ID_VIEW_ADDRESSBAR, OnViewAddressbar)
ON_UPDATE_COMMAND_UI(ID_VIEW_ADDRESSBAR, OnUpdateViewAddressbar)
ON_COMMAND(ID_VIEW_REFRESH_ALL, OnViewRefreshAll)
ON_COMMAND(ID_VIEW_STOP_ALL, OnViewStopAll)
ON_COMMAND(ID_WINDOW_CLOSE_ALL_BEN, OnWindowCloseAll)
ON_COMMAND(ID_FILE_OPENURL, OnFileOpenurl)
ON_COMMAND(ID_IMPROTFAVORITE_TOOL, OnImprotfavoriteTool)
ON_COMMAND(ID_EXPORTFAVORITE_TOOL, OnExportfavoriteTool)
ON_COMMAND(ID_READMAIL_TOOL, OnReadmailTool)
ON_COMMAND(ID_WRITEMAIL_TOOL, OnWritemailTool)
ON_COMMAND(ID_READNEWS_TOOL, OnReadnewsTool)
ON_COMMAND(ID_ADDRESSBAR_FOCUS, OnAddressbarFocus)
ON_COMMAND(ID_ADDRESSBAR_DROPDOWN, OnAddressbarDropdown)
ON_COMMAND(ID_QUICKSEARCH_TOOL, OnQuicksearchTool)
ON_COMMAND(ID_ALIASES_TOOL, OnAliasesTool)
ON_COMMAND(ID_ADDRESSTOOL_TOOL, OnAddresstoolTool)
ON_COMMAND(ID_VIEW_FAVORITE_BAR, OnViewFavoriteBar)
ON_UPDATE_COMMAND_UI(ID_VIEW_FAVORITE_BAR, OnUpdateViewFavoriteBar)
ON_COMMAND(ID_SELECTBMP_TOOL, OnSelectbmpTool)
ON_COMMAND(ID_SHOWBK_TOOL, OnShowbkTool)
ON_UPDATE_COMMAND_UI(ID_SHOWBK_TOOL, OnUpdateShowbkTool)
ON_WM_DROPFILES()
ON_WM_CTLCOLOR()
ON_COMMAND(ID_VIEW_ACTIVATENEW, OnViewActivatenew)
ON_UPDATE_COMMAND_UI(ID_VIEW_ACTIVATENEW, OnUpdateViewActivatenew)
ON_COMMAND(ID_JAVA_SECURITY, OnJavaSecurity)
ON_UPDATE_COMMAND_UI(ID_JAVA_SECURITY, OnUpdateJavaSecurity)
ON_COMMAND(ID_ACTIVEX_SECURITY, OnActivexSecurity)
ON_UPDATE_COMMAND_UI(ID_ACTIVEX_SECURITY, OnUpdateActivexSecurity)
ON_COMMAND(ID_SCRIPT_SECURITY, OnScriptSecurity)
ON_UPDATE_COMMAND_UI(ID_SCRIPT_SECURITY, OnUpdateScriptSecurity)
ON_COMMAND(ID_HELP_MAIL_AUTHOR, OnHelpMailAuthor)
ON_COMMAND(ID_VIEW_NEWLAST, OnViewNewlast)
ON_UPDATE_COMMAND_UI(ID_VIEW_NEWLAST, OnUpdateViewNewlast)
//}}AFX_MSG_MAP
ON_CBN_SELENDOK(AFX_IDW_TOOLBAR + 1,OnNewAddress)
ON_COMMAND(IDOK, OnNewAddressEnter)
ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown)
ON_NOTIFY(TBN_DROPDOWN, ID_VIEW_ADDRESSBAR, OnDropDown)
ON_COMMAND(ID_FAVORITES_DROPDOWN, OnViewFavoriteBar)
ON_COMMAND(ID_FONT_DROPDOWN, DoNothing)
ON_COMMAND_RANGE(0xe00, 0xfff, OnFavorite)
ON_WM_MEASUREITEM()
ON_WM_MENUCHAR()
ON_MESSAGE(WM_SETMESSAGESTRING, OnSetMessageString)
ON_COMMAND_RANGE(FIRST_HISTORY_COMMAND, FIRST_HISTORY_COMMAND + HISTORY_LEN - 1, OnHistory)
ON_COMMAND_RANGE(0x1020, 0x10ff, OnSetNewLanguage)
ON_COMMAND(ID_PROXY_DROPDOWN, DoNothing)
ON_COMMAND_RANGE(0x1100, 0x11FF, OnTranslation)
ON_COMMAND_RANGE(0x100B, 0x101F, OnMail)
ON_MESSAGE(WM_HOTKEY, OnHotKey)
ON_COMMAND(ID_DOWNLOAD_CONTROL, DoNothing)
END_MESSAGE_MAP()
/*
0xE00 0xFFF favorite
0x1000 0x100A history (back foward)
0x100B 0x101F mail
0x1020 0x10ff language
0x1100 0x11FF translation
*/
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
// ID_INDICATOR_PROGRESS, // show downloaded progress
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
/* NONCLIENTMETRICS ncm;
memset(&ncm, 0, sizeof(NONCLIENTMETRICS));
ncm.cbSize = sizeof(NONCLIENTMETRICS);
VERIFY(::SystemParametersInfo(SPI_GETNONCLIENTMETRICS,
sizeof(NONCLIENTMETRICS), &ncm, 0));
m_Font.CreateFontIndirect(&ncm.lfMessageFont);
*/
m_autorefreshtype=0;
m_activeonly=FALSE;
m_showimage=FALSE;
m_showvideo=FALSE;
m_showanimation=FALSE;
m_showsound=FALSE;
m_languageName="";//AfxGetApp()->GetProfileString("Settings","Language","English");
m_local_pass=0;//AfxGetApp()->GetProfileInt("Settings","Proxy",0);
m_hbmBack=NULL;
m_beshowBK=FALSE;
m_CurrentProxy="";
m_beVisibleNewWin=FALSE;
m_dwdownloadProperty=0;
m_beAddLast=TRUE;
m_coolbarStyle=TCS_DOWNBEN;
GetMultimediaSettings();
LoadBenbroState();
GetLangulagesExist();
BuildMenuTranslation(m_language_file_name);
m_astrFavoriteURLs.RemoveAll();
//m_strFavDirOpen="GlobalOpenAllFavSubItem";
GetText("MenuFavoriteOpenAllFavSubItem",m_strFavDirOpen,menu_item_text);
m_behidden=FALSE;
}
CMainFrame::~CMainFrame()
{
try
{
for(int i=0;i<m_menuitem.GetSize();i++)
{
delete m_menuitem [i];
}
m_menuitem.RemoveAll();
for(i=0;i<m_menuitemhint.GetSize();i++)
{
delete m_menuitemhint [i];
}
m_menuitemhint.RemoveAll();
for(i=0;i<m_globalitem.GetSize();i++)
{
delete m_globalitem [i];
}
m_globalitem.RemoveAll();
for(i=0;i<m_contextmenuitem.GetSize();i++)
{
delete m_contextmenuitem [i];
}
m_contextmenuitem.RemoveAll();
for(i=0;i<m_FavDirItem.GetSize();i++)
{
delete m_FavDirItem [i];
}
m_FavDirItem.RemoveAll();
for(i=0;i<m_linkbarItem.GetSize();i++)
{
delete m_linkbarItem [i];
}
m_linkbarItem.RemoveAll();
m_searchpages.RemoveAll();
m_astrFavoriteURLs.RemoveAll();
m_quicksearchpages.RemoveAll();
m_aliasespages.RemoveAll();
m_proxylist.RemoveAll();
m_lockURLlist.RemoveAll();
if(m_autorefreshtype>0)
KillTimer(1);
if ( m_hbmBack != 0 )
{
VERIFY( ::DeleteObject( m_hbmBack));
}
}
catch(...)
{
}
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)
return -1;
if ( !m_wndToolBar.Create( this,
WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_FLYBY|CBRS_TOOLTIPS ) )
{
TRACE0("Failed to create toolbar(s)\n");
return -1; // fail to create
}
m_wndToolBar.ModifyStyle( 0, CCS_ADJUSTABLE );
////////
if ( !m_linkbar.Create( this,
WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_FLYBY,ID_VIEW_LINKBAR) )
{
TRACE0("Failed to create toolbar(s)\n");
return -1; // fail to create
}
m_linkbar.ModifyStyle( 0, CCS_ADJUSTABLE );
//////////
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.SetStep(1);
m_wndStatusBar.SetPaneStyle(ID_SEPARATOR, SBPS_STRETCH);
if (!m_AddressBar.CreateEx(this,TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_TOOLTIPS,
WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_FLYBY, CRect( 0, 0, 0, 0 ),ID_VIEW_ADDRESSBAR))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_AddressBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |TBSTYLE_TOOLTIPS );
m_AddressBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
m_AddressBar.SetButtons(NULL,4);
m_AddressBar.SetButtonInfo(0, 0, TBBS_SEPARATOR, 0);
if(!m_wndAnimate.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0,0), this, ID_VIEW_ADDRESSBAR+1)||
!m_wndAnimate.Open(IDR_TITLE_AVI))
{
TRACE0("Failed to create CAnimateCtrl\n");
return -1; // fail to create;
}
CString straddressbar="ConMeuAddressbar",strnewaddressbar;
CString strlinkbar="ConMeuLinkbar",strnewlinkbar;
GetText(straddressbar,strnewaddressbar,conmeu_item_text);
strnewaddressbar.Remove('&');
GetText(strlinkbar,strnewlinkbar,conmeu_item_text);
strnewlinkbar.Remove('&');
if (!m_wndReBar.AddBar(&m_wndAnimate,NULL, NULL,RBBS_FIXEDSIZE | RBBS_FIXEDBMP)||
!m_wndReBar.AddBar(&m_wndToolBar, NULL,NULL, RBBS_GRIPPERALWAYS|RBBS_FIXEDBMP|RBBS_BREAK,_T("ConMeuToolbar"),false)||
!m_wndReBar.AddBar(&m_AddressBar,strnewaddressbar, NULL, RBBS_GRIPPERALWAYS|RBBS_FIXEDBMP | RBBS_BREAK,_T("ConMeuAddressbar"),false)||
!m_wndReBar.AddBar(&m_linkbar,strnewlinkbar, NULL, RBBS_GRIPPERALWAYS|RBBS_FIXEDBMP|RBBS_BREAK,_T("ConMeuLinkbar"),false)
)
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
}
m_AddressBar.Init();
CImageList img;
img.Create(16, 16, ILC_COLOR8|ILC_MASK, 1, 1);
HBITMAP hbmp = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP5));
ImageList_AddMasked(img.GetSafeHandle(), hbmp, RGB(255,0,255));
m_AddressBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();
CString strgo="GlobalGo";
GetText("GlobalGo",strgo,global_item_text);
m_AddressBar.SetButtonInfo(1, IDOK, TBSTYLE_BUTTON|TBSTYLE_DROPDOWN , 6);
m_AddressBar.GetToolBarCtrl().GetToolTips()->UpdateTipText(strgo, &m_AddressBar, IDOK);
m_AddressBar.SetButtonInfo(2, ID_FILE_CLOSE, TBSTYLE_BUTTON , 2);
m_AddressBar.SetButtonInfo(3, ID_WINDOW_CLOSE_ALL_BEN, TBSTYLE_BUTTON|TBSTYLE_DROPDOWN, 3);
m_wndToolBar.Init();
m_AddressCom=m_AddressBar.GetAddressBox();
LoadHistoryUrls();
CEdit * pMyEdit = m_AddressCom->GetEditCtrl();
if (pMyEdit)
{
// enable auto complete for m_myCombo
SetupForAutoComplete(pMyEdit->m_hWnd, SHACF_URLHISTORY);
}
m_wndToolBar.LoadState( _T("Settings") );
m_wndReBar.LoadState( _T("Settings") );
////////////////////////////////////////////////////////
// Install the tab view here
EnableDocking(CBRS_ALIGN_ANY);
VERIFY(m_MDIClient.SubclassMDIClient(this, &m_wndViewManager));
m_wndViewManager.SetWin2000(FALSE);
m_wndViewManager.SetAddLast(m_beAddLast);
// GetMultimediaSettings();
InstallCollBar();
LoadSearchPages("");
if(m_strBmpFilename.GetLength()>0)
{
//LoadBKbmp();
SetBkGroundBmp(m_beshowBK);
}
SetInternetProxyben();
RegisterHotKey (m_hWnd, 0, MOD_ALT|MOD_SHIFT , 192);
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CMDIFrameWndEx::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CMDIFrameWndEx::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
void CMainFrame::OnNewAddress()
{
CString str;
try
{
int index=m_AddressBar.GetAddressBox()->GetCurSel();
if(index>=0)
m_AddressBar.GetSelText(index, str);
else
return;
NavigateToUrl(str,0,TRUE);
}
catch(...)
{
}
}
void CMainFrame::OnNewAddressEnter()
{
CString str;
int type=0;
CString URL;
try
{
m_AddressCom->GetEditCtrl()->GetWindowText(str);
{
if(GetQuickSearchURL(str,URL))
{
str=URL;
}
else if(GetAliasesURL(str, URL))
{
str=URL;
}
else
{
unsigned char kbuf[256];
::GetKeyboardState(kbuf);
if(kbuf[VK_SHIFT]&128&&kbuf[VK_CONTROL]&128)
str="www."+str+".net";
else if(kbuf[VK_MENU]&128||kbuf[VK_CONTROL]&128)//open in the current window
type=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -