📄 mainfrm.cpp
字号:
if(isLink)
{
CRect rectToolBar;
REBARBANDINFO rbbi;
m_LinkBar.GetItemRect(0, &rectToolBar);
//m_LinkBar.SetSizes(rectToolBar.Size(), CSize(16,100));
rbbi.cbSize = sizeof(rbbi);
rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE |RBBIM_ID ;
rbbi.wID = ID_VIEW_LINKS;
rbbi.cxMinChild = rectToolBar.Width()+2;
if(rectToolBar.Height()<22)
rbbi.cyMinChild = 22;
else
rbbi.cyMinChild = rectToolBar.Height();
int bc=m_LinkBar.GetToolBarCtrl().GetButtonCount();
if(bc>0)
{
m_LinkBar.GetToolBarCtrl().GetItemRect(bc-1,&rectToolBar);
/*rbbi.cx =*/ rbbi.cxIdeal = rectToolBar.right;
}
else
/*rbbi.cx =*/ rbbi.cxIdeal = 2;
int bandid = m_wndReBar.GetReBarCtrl().IDToIndex(ID_VIEW_LINKS);
m_wndReBar.GetReBarCtrl().SetBandInfo(bandid, &rbbi);
}
if(FirstLevel)
{
CRect rectToolBar;
REBARBANDINFO rbbi;
m_FavBar.GetItemRect(0, &rectToolBar);
rbbi.cbSize = sizeof(rbbi);
rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE |RBBIM_ID ;
rbbi.wID = ID_VIEW_FAVS;
rbbi.cxMinChild = 2;
if(rectToolBar.Height()<22)
rbbi.cyMinChild = 22;
else
rbbi.cyMinChild = rectToolBar.Height();
int bc=m_FavBar.GetToolBarCtrl().GetButtonCount();
if(bc>0)
{
m_FavBar.GetToolBarCtrl().GetItemRect(bc-1,&rectToolBar);
/*rbbi.cx =*/ rbbi.cxIdeal = rectToolBar.right;
}
else
/*rbbi.cx =*/ rbbi.cxIdeal = 2;
int bandid = m_wndReBar.GetReBarCtrl().IDToIndex(ID_VIEW_FAVS);
m_wndReBar.GetReBarCtrl().SetBandInfo(bandid, &rbbi);
}
}
/* catch(CMemoryException* e)
{
if(e!=NULL)e->Delete();
}*/
catch(...)
{
}
return nEndPos;
}
void CMainFrame::OnFavorite(UINT nID)
{
short ks;
ks =GetKeyState(VK_CONTROL);
//static CString url;
static TCHAR buf[INTERNET_MAX_PATH_LENGTH];
try
{
if(nID>=0x1380)
{
// url = m_astrFavoriteURLs[nID-0x1380];
CMenu * pMenu = GetMenu();
MENUITEMINFO mii;
if(pMenu!=NULL)
{
mii.fMask = MIIM_DATA|MIIM_TYPE; // get the state of the menu item
mii.dwTypeData = NULL;
mii.cch = 0;
mii.dwItemData = NULL;
mii.cbSize = sizeof(mii);
pMenu->GetMenuItemInfo(nID, &mii, FALSE);
CMenuData* pmd = (CMenuData*)(mii.dwItemData);
if(mii.fType & MFT_OWNERDRAW && pmd!=NULL)
if(pmd->m_szURL!=NULL)
favurl=pmd->m_szURL;
}
if(favurl.Right(4) == _T(".lnk"))
{
if(ResolveLink(favurl, buf))
{
favurl = buf;
//is exe?
if(favurl.Right(4)==".EXE" || favurl.Right(4)==".exe")
{
ShellExecute(NULL, "open", favurl , "", NULL, SW_SHOW );
return;
}
}
else
favurl = "about:blank";
}
}
CChildFrame* tcf = (CChildFrame*)MDIGetActive();
if (tcf!=NULL && tcf->m_pView!=NULL && !bFavInNewWindow && ks>=0)
((CMyIEView*)tcf->m_pView)->ToNavigate(favurl, 0, NULL);
else
{
tcf = NewChildWindow(0);
if(tcf!=NULL)
((CMyIEView*)tcf->m_pView)->ToNavigate(favurl, 0, NULL);
}
}
/* catch(CMemoryException* e)
{
if(e!=NULL)e->Delete();
}*/
catch(...)
{
}
}
void CMainFrame::OnFileNewBlank()
{
// TODO: Add your command handler code here
//nOpenType = 0;
//PostMessage(WM_COMMAND, ID_FILE_NEW_S);
NewChildWindow(2,0, NULL, NULL, TRUE);
// if(m_bActiveNewWindow)
m_wndAddress->SetFocus();
}
void CMainFrame::OnFileNewCurrentpage()
{
// TODO: Add your command handler code here
// nOpenType = 2;
try{
CString strURL;
CChildFrame* tcf = (CChildFrame*)MDIGetActive();
if (tcf!=NULL && tcf->m_pView!=NULL)
// ((CMyIEView*)tcf->m_pView)->GetLocationURL(strURL);
strURL = ((CMyIEView*)tcf->m_pView)->m_lpszUrl;
else
strURL = "about:blank";
//PostMessage(WM_COMMAND, ID_FILE_NEW_S);
NewChildWindow(1,2,strURL, NULL, TRUE);
// if(m_bActiveNewWindow)
m_wndAddress->SetFocus();
}catch(...)
{
}
}
void CMainFrame::OnUpdateProgress(CCmdUI* pCmdUI)
{
try
{
if(percent<0)
{
if(m_wndStatusBar.IsProgressBarVisible())
m_wndStatusBar.ShowProgressBar(false);
pCmdUI->SetText("");
}
else
{
if(!m_wndStatusBar.IsProgressBarVisible())
m_wndStatusBar.ShowProgressBar(true);
m_wndStatusBar.SetPos(percent);
static TCHAR str[8];
sprintf(str, "%d%%", percent);
m_wndStatusBar.SetWindowText(str);
}
}
/* catch(CMemoryException* e)
{
if(e!=NULL)e->Delete();
}*/
catch(...)
{
// AfxMessageBox("update progress error");
}
}
void CMainFrame::OnUpdateWins(CCmdUI* pCmdUI)
{
try
{
CTime t;
CTimeSpan ts;
static char temp[5];
t = CTime::GetCurrentTime();
ts = t - m_tLastWinsUpdate;
if(ts.GetTotalSeconds()>= 1)
{
int n = nWin;//m_wndTab.GetItemCount();
itoa(n, temp, 10);
pCmdUI->SetText(temp);
m_tLastWinsUpdate = t;
}
}
/* catch(CMemoryException* e)
{
// AfxMessageBox("update win error");
if(e!=NULL)e->Delete();
}*/
catch(...)
{
}
}
void CMainFrame::OnUpdateIP(CCmdUI* pCmdUI)
{
// CString ip;
// CString addre;
struct hostent * pHostent;
pHostent = NULL;
try{
if(!m_bDisplayIP)
{
pCmdUI->SetText("");
return;
}
if(!bSockInied)
{
bSockInied = TRUE;
WSADATA wsaData;
WORD wVersionRequested = MAKEWORD(1, 1);
int nResult = WSAStartup(wVersionRequested, &wsaData);
if (nResult != 0)
return;
if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
{
WSACleanup();
return;
}
}
CTime t;
CTimeSpan ts;
//ip ="";
t = CTime::GetCurrentTime();
ts = t - m_tLastIPUpdate;
int mini = 5, sec = ts.GetTotalSeconds();
if(sec>mini && m_strLastIP!="127.0.0.1")
mini=9;
if(sec > mini)
{
m_tLastIPUpdate = t;
//is any window is downloading
//11/5
/* BOOL IsDownloading = FALSE;
CChildFrame* tcf;
int n = m_wndTab.GetItemCount();
TCITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_PARAM;
for(int l=n-1;l>=0;l--)
{
TabCtrlItem.lParam = 0;
m_wndTab.GetItem(l, &TabCtrlItem);
tcf = ((CChildFrame*)TabCtrlItem.lParam);
if(tcf != NULL && tcf->m_pView != NULL)
{
if(tcf->m_pView->m_nProgress>=0)
IsDownloading = TRUE;
}
}
if(IsDownloading)
return;
*/
try{
//get IP Address
int i=0,j=0;
// if(gethostname(addr,255)!=SOCKET_ERROR )
{
pHostent=gethostbyname(addr);
if(pHostent!=NULL && pHostent->h_addr_list[0]!= NULL)
{
int i = 0;
while(pHostent->h_addr_list[i]!= NULL)
{
//ip = "";
m_strLastIP.Empty();
gaddre.Empty();
for( j = 0; j < pHostent->h_length; j++ )
{
if( j > 0 )
m_strLastIP += ".";
gaddre.Format("%u", (unsigned int)((unsigned
char*)pHostent->h_addr_list[i])[j]);
m_strLastIP += gaddre;
}
i++;
}
pCmdUI->SetText(m_strLastIP);
//m_strLastIP = ip;
}
}
}
catch(...)
{
}
/* try{
if(pHostent!=NULL)
delete pHostent; //?
}catch(...)
{
}*/
}
}catch(...)
{
}
}
int CMainFrame::AddNewTab(CWnd* lpMvw, int CurID, LPTSTR label, BOOL bAddLast)
{
if(lpMvw==NULL)
return 0;
try
{
//static CString str;
if (bAddLast)
CurID = nTotalTabs;
else
CurID ++;
nTotalTabs ++;
int presel = m_wndTab.GetCurSel();
if(m_bNextTab)
CurID = presel+1;
TCITEM TabCtrlItem;
tab.LoadString(IDS_UNTITLED);
TabCtrlItem.mask = TCIF_TEXT|TCIF_PARAM;
if(label==NULL)
TabCtrlItem.pszText = tab.GetBuffer(30);
else
TabCtrlItem.pszText = label;
TabCtrlItem.lParam = (LPARAM)lpMvw;
m_wndTab.InsertItem( CurID, &TabCtrlItem );
tab.ReleaseBuffer();
//select this tab
if(((CChildFrame*)lpMvw)->m_pView!=NULL)
if(((CChildFrame*)lpMvw)->m_pView->IsActive)//m_bActiveNewWindow
m_wndTab.SetCurSel(CurID);
else
m_wndTab.SetCurSel(presel);
PostMessage(WM_UPDATE_TAB, TRUE);
// PostMessage(WM_UPDATE_TAB_TIP);
nWin = m_wndTab.GetItemCount();
// SaveLastVisit();
bVerbose = TRUE;
}
/* catch(CMemoryException * e)
{
// AfxMessageBox("add tab error");
if(e!=NULL)e->Delete();
}*/
catch(...)
{
}
return CurID;
}
void CMainFrame::OnSelChange(NMHDR* pNotifyStruct, LRESULT* pResult)
{
try
{
TCITEM TabCtrlItem;
int n = m_wndTab.GetCurSel();
if(n>=0)
{
TabCtrlItem.mask = TCIF_PARAM;
m_wndTab.GetItem(n, &TabCtrlItem);
if(TabCtrlItem.lParam != NULL)
{
BOOL bMax;
CChildFrame * tcf;
tcf = (CChildFrame*)MDIGetActive(&bMax);
((CChildFrame*)TabCtrlItem.lParam)->m_bSkipSel = TRUE;
((CChildFrame*)TabCtrlItem.lParam)->nCurTabID = n;
if(((CChildFrame*)TabCtrlItem.lParam)->bProtect)
PostMessage(WM_ACTIVATE_WINDOW, 0, TabCtrlItem.lParam);
else
MDIActivate((CChildFrame*)TabCtrlItem.lParam);
if(tcf!=NULL && bMax)
{
m_bMax = 1;
}
}
}
}
/* catch(CMemoryException* e)
{
// AfxMessageBox("sel change error");
if(e!=NULL)e->Delete();
}*/
catch(...)
{
}
}
void CMainFrame::OnRClick(NMHDR* pNotifyStruct, LRESULT* pResult
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -