亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainfrm.cpp

?? 一個多文檔瀏覽器
?? CPP
字號:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "MIE.h"

#include "MainFrm.h"
#include <wininet.h>

#include "mieDoc.h"
#include "mieView.h"
#include "viewmanager.h"
#include "registry.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
	ON_CBN_SELENDOK(AFX_IDW_TOOLBAR + 1,OnNewAddress)
	ON_COMMAND_RANGE(0xe00, 0xfff, OnFavorite)
	ON_COMMAND(IDOK, OnNewAddressEnter)
	ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown)
	ON_COMMAND(ID_FAVE, DoNothing)
	ON_COMMAND(ID_FONT, DoNothing)
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
address="vcsky.shangdu.net";	
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}
//設置冷熱圖形
	CImageList img;
	m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 150);
	m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);

	img.Create(IDB_HOTTOOLBAR, 22, 0, RGB(255, 0, 255));
	m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
	img.Detach();
	img.Create(IDB_COLDTOOLBAR, 22, 0, RGB(255, 0, 255));
	m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
	img.Detach();
	m_wndToolBar.SetButtonStyle(8,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);
	m_wndToolBar.SetButtonStyle(12,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);
//為工具條加入標簽文本 
for(int i = 0; i < m_wndToolBar.GetCount(); i++) 
{ UINT id = m_wndToolBar.GetItemID(i); 
CString s;
if(!s.LoadString(id)) continue;
int j = s.Find(_T('\n')); 
if(j < 0) continue;
s = s.Right(s.GetLength() - j - 1); 
m_wndToolBar.SetButtonText(i,s); 
}
// Adjust sizes to include text 
CRect rect; 
m_wndToolBar.GetItemRect(0,&rect); 
m_wndToolBar.SetSizes(rect.Size(),CSize(22,20));//設置按鈕尺寸和圖象尺寸,前者應大于后者

	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
	}

	// TODO: Delete these three lines if you don't want the toolbar to
	//  be dockable
	m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
	EnableDocking(CBRS_ALIGN_ANY);
	DockControlBar(&m_wndToolBar);


//創建Favorites菜單----------------------
	TCHAR           sz[MAX_PATH];
	TCHAR           szPath[MAX_PATH];
	HKEY            hKey;
	DWORD           dwSize;
	CMenu*          pMenu;

	// first get rid of bogus submenu items.
	pMenu = GetMenu()->GetSubMenu(3);
	while(pMenu->DeleteMenu(0, MF_BYPOSITION));

	// find out from the registry where the favorites are located.
	if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders"), &hKey) != ERROR_SUCCESS)
	{
		TRACE0("Favorites folder not found\n");
		return 0;
	}
	dwSize = sizeof(sz);
	RegQueryValueEx(hKey, _T("Favorites"), NULL, NULL, (LPBYTE)sz, &dwSize);
	ExpandEnvironmentStrings(sz, szPath, MAX_PATH);
	RegCloseKey(hKey);

	BuildFavoritesMenu(szPath, 0, pMenu);
//創建Favorites菜單完畢----------------------

	if (!m_wndReBar.Create(this))
	{
		TRACE0("Failed to create rebar\n");
		return -1;      // fail to create
	}
	if (!m_wndAddress.Create(CBS_DROPDOWN | WS_CHILD, CRect(0, 0, 200, 120), this, AFX_IDW_TOOLBAR + 1))
	{
		TRACE0("Failed to create combobox\n");
		return -1;      // fail to create
	}
	theWindowTab.Create(WS_CHILD|WS_VISIBLE|TCS_BUTTONS|TCS_FIXEDWIDTH|TCS_SINGLELINE|TCS_FORCELABELLEFT, CRect(0,0,200,25), this, 1001);

	m_wndReBar.AddBar(&m_wndAddress,_T("地址:")/*, NULL, RBBS_FIXEDBMP | RBBS_BREAK*/);
	AddressInit();
	m_wndReBar.AddBar(&theWindowTab,_T("窗口列表:"));
	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	cs.lpszClass = AfxRegisterWndClass(0);	
	if( !CMDIFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
		| WS_THICKFRAME | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CMDIFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CMDIFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers

int CMainFrame::BuildFavoritesMenu(LPCTSTR pszPath, int nStartPos, CMenu* pMenu)
{
	CString         strPath(pszPath);
	CString         strPath2;
	CString         str;
	WIN32_FIND_DATA wfd;
	HANDLE          h;
	int             nPos;
	int             nEndPos;
	int             nNewEndPos;
	int             nLastDir;
	TCHAR           buf[INTERNET_MAX_PATH_LENGTH];
	CStringArray    astrFavorites;
	CStringArray    astrDirs;
	CMenu*          pSubMenu;

	// make sure there's a trailing backslash
	if(strPath[strPath.GetLength() - 1] != _T('\\'))
		strPath += _T('\\');
	strPath2 = strPath;
	strPath += "*.*";

	// now scan the directory, first for .URL files and then for subdirectories
	// that may also contain .URL files
	h = FindFirstFile(strPath, &wfd);
	if(h != INVALID_HANDLE_VALUE)
	{
		nEndPos = nStartPos;
		do
		{
			if((wfd.dwFileAttributes & (FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM))==0)
			{
				str = wfd.cFileName;
				if(str.Right(4) == _T(".url"))
				{
					// an .URL file is formatted just like an .INI file, so we can
					// use GetPrivateProfileString() to get the information we want
					::GetPrivateProfileString(_T("InternetShortcut"), _T("URL"),
											  _T(""), buf, INTERNET_MAX_PATH_LENGTH,
											  strPath2 + str);
					str = str.Left(str.GetLength() - 4);

					// scan through the array and perform an insertion sort
					// to make sure the menu ends up in alphabetic order
					for(nPos = nStartPos ; nPos < nEndPos ; ++nPos)
					{
						if(str.CompareNoCase(astrFavorites[nPos]) < 0)
							break;
					}
					astrFavorites.InsertAt(nPos, str);
					m_astrFavoriteURLs.InsertAt(nPos, buf);
					++nEndPos;
				}
			}
		} while(FindNextFile(h, &wfd));
		FindClose(h);
		// Now add these items to the menu
		for(nPos = nStartPos ; nPos < nEndPos ; ++nPos)
		{
			pMenu->AppendMenu(MF_STRING | MF_ENABLED, 0xe00 + nPos, astrFavorites[nPos]);
		}


		// now that we've got all the .URL files, check the subdirectories for more
		nLastDir = 0;
		h = FindFirstFile(strPath, &wfd);
		ASSERT(h != INVALID_HANDLE_VALUE);
		do
		{
			if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
			{
				// ignore the current and parent directory entries
				if(lstrcmp(wfd.cFileName, _T(".")) == 0 || lstrcmp(wfd.cFileName, _T("..")) == 0)
					continue;

				for(nPos = 0 ; nPos < nLastDir ; ++nPos)
				{
					if(astrDirs[nPos].CompareNoCase(wfd.cFileName) > 0)
						break;
				}
				pSubMenu = new CMenu;
				pSubMenu->CreatePopupMenu();

				// call this function recursively.
				nNewEndPos = BuildFavoritesMenu(strPath2 + wfd.cFileName, nEndPos, pSubMenu);
				if(nNewEndPos != nEndPos)
				{
					// only intert a submenu if there are in fact .URL files in the subdirectory
					nEndPos = nNewEndPos;
					pMenu->InsertMenu(nPos, MF_BYPOSITION | MF_POPUP | MF_STRING, (UINT)pSubMenu->m_hMenu, wfd.cFileName);
					pSubMenu->Detach();
					astrDirs.InsertAt(nPos, wfd.cFileName);
					++nLastDir;
				}
				delete pSubMenu;
			}
		} while(FindNextFile(h, &wfd));
		FindClose(h);
	}
	return nEndPos;
}

void CMainFrame::OnFavorite(UINT nID)
{
	address=m_astrFavoriteURLs[nID-0xe00];
	SendMessage(WM_COMMAND,ID_FILE_NEW);//建立一個新窗口
}

void CMainFrame::SetAddress(LPCTSTR lpszUrl)
{
	// This is called when the browser has completely loaded the new location,
	// so make sure the text in the address bar is up to date and stop the
	// animation.
	//CEdit * edit=m_wndAddress.GetEditCtrl();
	//edit->SetWindowText(lpszUrl);
}

void CMainFrame::OnNewAddress()
{
	// gets called when an item in the Address combo box is selected
	// just navigate to the newly selected location.
	CString str;

	m_wndAddress.GetLBText(m_wndAddress.GetCurSel(), address);
	SendMessage(WM_COMMAND,ID_FILE_NEW);//建立一個新窗口
//	CMIEView* view=(CMIEView*)GetActiveView();
	//view->Navigate2(str, 0, NULL);
//	view->Go(str);
}

void CMainFrame::OnNewAddressEnter()
{
	// gets called when an item is entered manually into the edit box portion
	// of the Address combo box.
	// navigate to the newly selected location and also add this address to the
	// list of addresses in the combo box.
//	CString str;
	m_wndAddress.GetEditCtrl()->GetWindowText(address);
//	this->NewDocment();

	SendMessage(WM_COMMAND,ID_FILE_NEW);//建立一個新窗口

	
	COMBOBOXEXITEM item;

	item.mask = CBEIF_TEXT;
	item.iItem = -1;
	item.pszText = (LPTSTR)(LPCTSTR)address;
	m_wndAddress.InsertItem(&item);
}

void CMainFrame::DoNothing()
{
	// this is here only so that the toolbar buttons for the dropdown menus
	// will have a callback, and thus will not be disabled.
}

void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult)
{
	// this function handles the dropdown menus from the toolbar
	NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct;
	CRect rect;

	// translate the current toolbar item rectangle into screen coordinates
	// so that we'll know where to pop up the menu
	m_wndToolBar.GetToolBarCtrl().GetRect(pNMToolBar->iItem, &rect);
	rect.top = rect.bottom;
	::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft());
	if(pNMToolBar->iItem == ID_FONT)
	{
		CMenu menu;
		CMenu* pPopup;

		// the font popup is stored in a resource
		menu.LoadMenu(IDR_FONT_POPUP);
		pPopup = menu.GetSubMenu(0);
		pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd());
	}
	else if(pNMToolBar->iItem == ID_FAVE)
	{
		CMenu* pPopup;

		// for the favorties popup, just steal the menu from the main window
		pPopup = GetMenu()->GetSubMenu(3);
		pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd());
	}
	*pResult = TBDDRET_DEFAULT;
}



BOOL CMainFrame::AddressInit()//用注冊表中的數據填充地址欄的下拉列表
{
	CString url;
	char *buffer;
	int i;
	CRegistry reg;
	if(!reg.Open( HKEY_CURRENT_USER,"Software\\Microsoft\\Internet Explorer\\TypedURLs"))return FALSE;
	buffer=new char[INTERNET_MAX_PATH_LENGTH];
	if(buffer==NULL)return FALSE;
	for(i=1;i<25;i++)//最多24項,從url1到url24
	{url.Format("url%d",i);
	if(!reg.ReadString(url,buffer,INTERNET_MAX_PATH_LENGTH))break;
	
	COMBOBOXEXITEM item;

	item.mask = CBEIF_TEXT;
	item.iItem = -1;
	item.pszText = (LPTSTR)(LPCTSTR)buffer;
	m_wndAddress.InsertItem(&item);
	}
	reg.Close();
	delete buffer;
	return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲资源网| 久久99久久久欧美国产| 色婷婷精品大在线视频| 精品一二三四在线| 欧美天堂一区二区三区| 欧美激情一区二区三区不卡| 国产剧情一区二区三区| 高清视频一区二区| 欧美一区二区三区视频免费| 一区二区三区欧美亚洲| 国产福利一区二区三区视频在线| 欧美久久久久中文字幕| 日韩毛片精品高清免费| 国产激情精品久久久第一区二区 | 欧美精品三级日韩久久| 国产精品一二三区在线| 欧美剧在线免费观看网站| 国产精品久线观看视频| 久久99精品国产91久久来源| 欧美少妇一区二区| 亚洲另类色综合网站| 国产精品一品二品| 日韩精品一区二区三区在线观看 | 91片在线免费观看| 精品第一国产综合精品aⅴ| 亚洲mv在线观看| 99久久婷婷国产综合精品电影| 久久综合久久99| 免费成人结看片| 欧美妇女性影城| 日韩一区二区在线看| 日韩毛片在线免费观看| 成人免费视频网站在线观看| 久久免费电影网| 美日韩黄色大片| 911国产精品| 亚洲h动漫在线| 欧美亚洲动漫另类| 亚洲国产cao| 在线视频欧美区| 亚洲欧美日韩电影| 色综合咪咪久久| 亚洲精品老司机| 欧美系列日韩一区| 亚洲国产一二三| 欧美日韩成人一区| 天堂蜜桃一区二区三区| 欧美精品自拍偷拍| 青青草伊人久久| 日韩一级黄色大片| 另类的小说在线视频另类成人小视频在线 | 精品sm在线观看| 久久99国产精品成人| 久久综合九色综合97婷婷女人 | 性做久久久久久免费观看| 欧美色综合网站| 亚洲成人精品一区二区| 欧美一区二区视频免费观看| 美女精品自拍一二三四| 精品国产91洋老外米糕| 国产一区二区不卡老阿姨| 国产日韩欧美亚洲| 波多野结衣欧美| 亚洲影院理伦片| 欧美人动与zoxxxx乱| 日本不卡的三区四区五区| 精品国产一区二区三区久久久蜜月| 国精产品一区一区三区mba视频 | 人人精品人人爱| 精品国产免费人成电影在线观看四季 | 精品少妇一区二区三区在线视频| 韩国精品在线观看| 欧美国产精品v| 色婷婷香蕉在线一区二区| 视频一区在线视频| 久久女同互慰一区二区三区| 99久精品国产| 日韩制服丝袜av| 国产亚洲精品aa| 一本色道久久综合狠狠躁的推荐| 亚洲一区二区五区| 精品国产sm最大网站| 不卡欧美aaaaa| 五月激情综合色| 久久久久久久一区| 在线观看亚洲成人| 另类小说综合欧美亚洲| 亚洲欧洲av一区二区三区久久| 在线观看免费视频综合| 久久国产精品区| 成人欧美一区二区三区黑人麻豆 | 国产一区二三区| 中文字幕一区日韩精品欧美| 欧美久久久久中文字幕| 国产一区二区免费看| 亚洲欧美激情插 | 色噜噜狠狠色综合中国| 美女国产一区二区三区| 日本一区二区三区四区| 欧美日韩精品一区二区| 国产不卡在线播放| 中文字幕在线不卡视频| 99久久综合国产精品| 亚洲va国产天堂va久久en| 久久这里只有精品视频网| 91久久线看在观草草青青| 美女视频黄久久| 一区二区国产盗摄色噜噜| 精品国产乱码久久久久久浪潮 | 亚洲在线一区二区三区| 日韩免费观看高清完整版| 麻豆国产91在线播放| 亚洲精品一区在线观看| 久久99久久久久| 亚洲欧美一区二区三区孕妇| 欧美大黄免费观看| 91成人在线精品| 粗大黑人巨茎大战欧美成人| 蜜臀99久久精品久久久久久软件| 亚洲激情五月婷婷| 国产欧美一区二区精品性色| 91精品国产综合久久久蜜臀粉嫩| jvid福利写真一区二区三区| 久久99国产精品久久| 亚洲a一区二区| 亚洲欧洲成人av每日更新| 久久久久久亚洲综合| 欧美日韩精品一区二区三区蜜桃 | 亚洲国产成人tv| **性色生活片久久毛片| 国产日韩欧美一区二区三区综合| 欧美一区二区三区四区五区| 在线观看精品一区| 成人av电影免费观看| 国产一区二区三区四区在线观看| 亚欧色一区w666天堂| 一区二区在线观看视频在线观看| 国产精品伦理一区二区| 久久网站热最新地址| 欧美一区二区在线免费播放| 欧美午夜精品理论片a级按摩| 99久久久国产精品免费蜜臀| 粉嫩嫩av羞羞动漫久久久| 国产主播一区二区| 美女精品自拍一二三四| 日本女人一区二区三区| 亚洲成a人v欧美综合天堂下载| 一区二区免费在线播放| 亚洲欧美成aⅴ人在线观看| 国产精品热久久久久夜色精品三区| 久久久精品tv| 国产亚洲精品资源在线26u| 精品动漫一区二区三区在线观看| 日韩欧美国产1| 精品国产免费视频| 精品久久久久久无| 精品粉嫩超白一线天av| 精品国产免费人成电影在线观看四季 | 日本在线观看不卡视频| 亚洲一二三区在线观看| 亚洲小说春色综合另类电影| 亚洲国产欧美在线人成| 亚洲午夜视频在线| 亚洲综合图片区| 青青草原综合久久大伊人精品| 亚洲一区二区三区在线| 亚洲一区国产视频| 亚洲午夜一区二区| 日本一区二区三区电影| 中文字幕不卡在线观看| 国产精品女上位| 亚洲精品国产无套在线观| 一区二区三区国产精品| 亚洲国产精品一区二区久久恐怖片 | 欧美制服丝袜第一页| 欧美视频在线观看一区二区| 欧美剧情片在线观看| 欧美一区二区视频观看视频| 精品国产一区二区三区四区四| 久久久不卡影院| 国产精品久久久久久久久久免费看 | 欧美视频日韩视频| 色素色在线综合| 欧美性一区二区| 欧美精品三级在线观看| 亚洲精品在线三区| 中文字幕乱码一区二区免费| 亚洲另类春色国产| 日韩成人精品在线| 韩国一区二区三区| 99视频热这里只有精品免费| 欧美一a一片一级一片| 91麻豆精品国产91久久久久久 | 欧美一区日韩一区| 精品日韩欧美在线| 国产精品国产三级国产三级人妇 | 国产精品久久国产精麻豆99网站| 一区二区三区欧美视频| 青青草成人在线观看| 国产丶欧美丶日本不卡视频|