📄 mainfrm.cpp
字号:
CTime t = CTime::GetCurrentTime();
CTimeSpan ts = t - m_tLastIPUpdate;
int mini = 4;
if(m_strLastIP!="127.0.0.1")
mini=8;
if(m_bDisplayIP && ts.GetTotalSeconds()> 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;
*/
//get IP Address
char addr[256];
struct hostent * pHostent=NULL;
int i=0,j=0;
addr[0]=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 = "";
for( j = 0; j < pHostent->h_length; j++ )
{
CString addre;
if( j > 0 )
ip += ".";
addre.Format("%u", (unsigned int)((unsigned
char*)pHostent->h_addr_list[i])[j]);
ip += addre;
}
i++;
}
delete pHostent;
pCmdUI->SetText(ip);
m_strLastIP = ip;
}
}
}
}
int CMainFrame::AddNewTab(CWnd* lpMvw, int CurID, LPTSTR label, BOOL bAddLast)
{
if(lpMvw==NULL)
return 0;
if (bAddLast)
CurID = nTotalTabs;
else
CurID ++;
nTotalTabs ++;
int presel = m_wndTab.GetCurSel();
if(m_bNextTab)
CurID = presel+1;
TCITEM TabCtrlItem;
CString str;
str.LoadString(IDS_UNTITLED);
TabCtrlItem.mask = TCIF_TEXT|TCIF_PARAM;
if(label==NULL)
TabCtrlItem.pszText = str.GetBuffer(1);
else
TabCtrlItem.pszText = label;
TabCtrlItem.lParam = (LPARAM)lpMvw;
m_wndTab.InsertItem( CurID, &TabCtrlItem );
//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);
return CurID;
}
void CMainFrame::OnSelChange(NMHDR* pNotifyStruct, LRESULT* pResult)
{
int n = m_wndTab.GetCurSel();
if(n>=0)
{
TCITEM TabCtrlItem;
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;
}
}
}
}
void CMainFrame::OnRClick(NMHDR* pNotifyStruct, LRESULT* pResult)
{
CPoint point;
// translate the current toolbar item rectangle into screen coordinates
// so that we'll know where to pop up the menu
GetCursorPos(&point);
int n = m_wndTab.GetItemCount();
BOOL found = false;
int i=0;
CRect rect;
while (i<n && !found)
{
m_wndTab.GetItemRect(i, &rect);
m_wndTab.ClientToScreen(&rect);
if(rect.PtInRect(point))
{
found = true;
}
else
i++;
}
nRTabID = i;
CMenu menu;
CMenu* pPopup;
// the font popup is stored in a resource
menu.LoadMenu(IDR_RTAB);
pPopup = menu.GetSubMenu(0);
//if is locked
TCITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_PARAM;
m_wndTab.GetItem(nRTabID, &TabCtrlItem);
if(TabCtrlItem.lParam != NULL)
{
if(((CChildFrame*)TabCtrlItem.lParam)->bLock)
pPopup->CheckMenuItem(ID_RTAB_LOCK, MF_CHECKED );
if(((CChildFrame*)TabCtrlItem.lParam)->bProtect)
pPopup->CheckMenuItem(ID_RTAB_PROTECT, MF_CHECKED );
if(m_bTopTab)
{
CString str;
pPopup->GetMenuString(ID_FILE_CLOSE_2, str, MF_BYCOMMAND);
pPopup->DeleteMenu(ID_FILE_CLOSE_2, MF_BYCOMMAND);
pPopup->InsertMenu(0, MF_BYPOSITION, ID_FILE_CLOSE_2, str);
pPopup->InsertMenu(1, MF_BYPOSITION|MF_SEPARATOR);
}
}
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd());
*pResult = 0;
}
void CMainFrame::OnViewAddressbar()
{
// TODO: Add your command handler code here
REBARBANDINFO rbbi;
rbbi.cbSize = sizeof(rbbi);
rbbi.fMask = RBBIM_ID|RBBIM_STYLE;
int nb = m_wndReBar.GetReBarCtrl( ).IDToIndex(ID_VIEW_ADDRESSBAR);
m_wndReBar.GetReBarCtrl().GetBandInfo(nb, &rbbi);
if( rbbi.fStyle & RBBS_HIDDEN || !m_wndAddress->IsWindowVisible())
{
m_AddressBar.ShowWindow(SW_SHOW);
m_wndReBar.GetReBarCtrl( ).ShowBand(nb, TRUE);
GetMenu()->CheckMenuItem(ID_VIEW_ADDRESSBAR, MF_CHECKED);
}
else
{
m_wndReBar.GetReBarCtrl( ).ShowBand(nb,FALSE);
m_AddressBar.ShowWindow(SW_HIDE);
GetMenu()->CheckMenuItem(ID_VIEW_ADDRESSBAR, MF_UNCHECKED);
}
}
void CMainFrame::OnViewTaskbar()
{
// TODO: Add your command handler code here
REBARBANDINFO rbbi;
rbbi.cbSize = sizeof(rbbi);
rbbi.fMask = RBBIM_ID|RBBIM_STYLE;
int nb;
if(m_bTopTab)
{
nb = m_wndReBar.GetReBarCtrl( ).IDToIndex(ID_VIEW_TASKBAR);
m_wndReBar.GetReBarCtrl().GetBandInfo(nb, &rbbi);
}
else
{
nb=0;
m_wndReBar2.GetReBarCtrl().GetBandInfo(nb, &rbbi);
}
if(rbbi.fStyle & RBBS_HIDDEN)
{
if(m_bTopTab)
{
m_wndReBar.GetReBarCtrl( ).ShowBand(nb,TRUE);
}
else
{
m_wndReBar2.GetReBarCtrl( ).ShowBand(0,TRUE);
}
m_wndTab.ShowWindow(SW_SHOW);
GetMenu()->CheckMenuItem(ID_VIEW_TASKBAR, MF_CHECKED);
}
else
{
if(m_bTopTab)
{
m_wndReBar.GetReBarCtrl( ).ShowBand(nb,FALSE);
}
else
{
m_wndReBar2.GetReBarCtrl( ).ShowBand(0,FALSE);
}
m_wndTab.ShowWindow(SW_HIDE);
GetMenu()->CheckMenuItem(ID_VIEW_TASKBAR, MF_UNCHECKED);
}
}
void CMainFrame::OnFileSaveas()
{
// TODO: Add your command handler code here
//COleVariant vaZoomFactor(3l);
CChildFrame* tcf = (CChildFrame*)MDIGetActive();
if (tcf!=NULL && tcf->m_pView!=NULL)
{
tcf->m_pView->ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT,
NULL, NULL);
}
}
void CMainFrame::OnFileSavehtml()
{
// TODO: Add your command handler code here
CChildFrame* tcf = (CChildFrame*)MDIGetActive();
if (tcf!=NULL && tcf->m_pView!=NULL)
{
tcf->m_pView->ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER,
NULL, NULL);
}
}
void CMainFrame::OnFileCloseall()
{
// TODO: Add your command handler code here
if(AfxMessageBox(IDS_CLOSE_ALL_CONF, MB_YESNO|MB_ICONQUESTION)==IDNO)
return;
CChildFrame* tcf;
int n = m_wndTab.GetItemCount();
TCITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_PARAM;
int l =n-1;
for(int i=n-1;i>=0;i--)
{
m_wndTab.GetItem(l, &TabCtrlItem);
tcf = ((CChildFrame*)TabCtrlItem.lParam);
if(tcf != NULL)
{
if(!tcf->bLock)
tcf->SendMessage(WM_CLOSE);
}
l--;
}
}
void CMainFrame::SetTabTitle(LPTSTR lpszTitle, int nItem)
{
//set the new title of tab
char *temp;
temp = new char[m_nTitleLen+4];
TCITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_TEXT;
if(strlen(lpszTitle)>m_nTitleLen)
{
strncpy(temp, lpszTitle, m_nTitleLen);
temp[m_nTitleLen]=0;
TabCtrlItem.pszText = temp;
}
else
TabCtrlItem.pszText = lpszTitle;
m_wndTab.SetItem( nItem, &TabCtrlItem );
m_wndTab.GetToolTips()->UpdateTipText(lpszTitle, &m_wndTab, nItem);
//PostMessage(WM_UPDATE_TAB_TIP);
delete[] temp;
}
void CMainFrame::OnFileWorkoffline()
{
// TODO: Add your command handler code here
//Get global offline setting
DWORD sz;
//TCHAR szPath[MAX_PATH];
HKEY hKey;
DWORD dwSize = sizeof(DWORD);
if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"), &hKey) != ERROR_SUCCESS)
{
TRACE0("Global settings not found\n");
return ;
}
if(RegQueryValueEx(hKey, _T("GlobalUserOffline"), NULL, NULL, (LPBYTE)&sz, &dwSize) == ERROR_SUCCESS)
{
//set new offline value
sz = 1-sz;
RegSetValueEx(hKey, _T("GlobalUserOffline"), NULL, REG_DWORD, (LPBYTE)(&sz), dwSize);
if(sz!=0)
{
GetMenu()->CheckMenuItem(ID_FILE_WORKOFFLINE, MF_CHECKED);
}
else
{
GetMenu()->CheckMenuItem(ID_FILE_WORKOFFLINE, MF_UNCHECKED);
}
}
RegCloseKey(hKey);
//infor the system that setting is changed.
InternetSetOption(
NULL,
INTERNET_OPTION_SETTINGS_CHANGED,
NULL,
0
);
}
int CMainFrame::FindTab(CChildFrame *lpFrame, BOOL bCleanBlank)
{
int n = m_wndTab.GetItemCount();
BOOL found = false;
register int i=0;
TCITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_PARAM;
// 11/7
/* if(bCleanBlank)
{
while (i<n && !found)
{
TabCtrlItem.lParam = 0;
m_wndTab.GetItem(i, &TabCtrlItem);
if(TabCtrlItem.lParam != 0)
if(((CChildFrame*)TabCtrlItem.lParam)->m_pBlankChild == lpFrame)
{
((CChildFrame*)TabCtrlItem.lParam)->m_pBlankChild = NULL;
found = true;
}
else
i++;
else
i++;
}
}
*/
i=0; found=false;
while (i<n && !found)
{
TabCtrlItem.lParam = 0;
m_wndTab.GetItem(i, &TabCtrlItem);
if(TabCtrlItem.lParam == (LPARAM)lpFrame)
{
found = true;
}
else
i++;
}
return i;
}
void CMainFrame::LoadTypedURL()
{
TCHAR sz[MAX_PATH];
//TCHAR szPath[MAX_PATH];
HKEY hKey;
DWORD dwSize;
TCHAR id[9] = "url";
int i = 1;
if(RegOpenKey(HKEY_CURRENT_USER,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -