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

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

?? mainfrm.cpp

?? 網絡通信方面的代碼書非常經典歡迎大家下載并學習
?? CPP
字號:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "SampleBrower.h"

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

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

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

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code !
		//添加
	ON_CBN_SELENDOK(AFX_IDW_TOOLBAR + 1,OnNewAddress)
	ON_COMMAND(IDOK, OnNewAddressEnter)	
	ON_COMMAND_RANGE(0xe00, 0xfff, OnFavorite)	
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
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
	
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	CImageList img;
	CString str;

	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	if (!m_wndReBar.Create(this))
	{
		TRACE0("Failed to create rebar\n");
		return -1;      // fail to create
	}

	if (!m_wndToolBar.CreateEx(this))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}
	//設置工具欄屬性
	m_wndToolBar.GetToolBarCtrl().SetButtonWidth(50, 150);
	m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);

	img.Create(IDB_BITMAP_HOT, 22, 0, RGB(255, 0, 255));
	m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
	img.Detach();
	img.Create(IDB_BITMAP_COOL, 22, 0, RGB(255, 0, 255));
	m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
	img.Detach();
	m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT);
	m_wndToolBar.SetButtons(NULL, 6);

	//設置每個工具欄按鈕
	m_wndToolBar.SetButtonInfo(0, ID_GO_BACK, TBSTYLE_BUTTON, 0);
	str.LoadString(IDS_GO_BACK);
	m_wndToolBar.SetButtonText(0, str);
	m_wndToolBar.SetButtonInfo(1, ID_GO_FORWARD, TBSTYLE_BUTTON, 1);
	str.LoadString(IDS_GO_FORWARD);
	m_wndToolBar.SetButtonText(1, str);
	m_wndToolBar.SetButtonInfo(2, ID_GO_STOP, TBSTYLE_BUTTON, 2);
	str.LoadString(IDS_GO_STOP);
	m_wndToolBar.SetButtonText(2, str);
	m_wndToolBar.SetButtonInfo(3, ID_GO_REFRESH, TBSTYLE_BUTTON, 3);
	str.LoadString(IDS_REFRESH);
	m_wndToolBar.SetButtonText(3, str);
	m_wndToolBar.SetButtonInfo(4, ID_START_PAGE, TBSTYLE_BUTTON, 4);
	str.LoadString(IDS_STARTPAGE);
	m_wndToolBar.SetButtonText(4, str);
	m_wndToolBar.SetButtonInfo(5, ID_GO_SERACH, TBSTYLE_BUTTON, 5);
	str.LoadString(IDS_SEARCH);
	m_wndToolBar.SetButtonText(5, str);
	
	//設置工具欄的尺寸
	CRect rectToolBar;
	m_wndToolBar.GetItemRect(0, &rectToolBar);
	m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(30,20));

	// 創建一個組合框作為地址條
	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
	}

	//添加工具條,地址條到rebar中
	m_wndReBar.AddBar(&m_wndToolBar);
	str.LoadString(IDS_ADDRESS);
	m_wndReBar.AddBar(&m_wndAddress, str, NULL, RBBS_FIXEDBMP | RBBS_BREAK);

	// 設定Rebar中的每個尺寸
	REBARBANDINFO rbbi;
	rbbi.cbSize = sizeof(rbbi);
	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE;
	rbbi.cxMinChild = rectToolBar.Width();
	rbbi.cyMinChild = rectToolBar.Height();
	rbbi.cx = rbbi.cxIdeal = rectToolBar.Width() * 9;
	m_wndReBar.GetReBarCtrl().SetBandInfo(0, &rbbi);
	rbbi.cxMinChild = 0;

	CRect rectAddress;

	rbbi.fMask = RBBIM_CHILDSIZE | RBBIM_IDEALSIZE;
	m_wndAddress.GetEditCtrl()->GetWindowRect(&rectAddress);
	rbbi.cyMinChild = rectAddress.Height() + 10;
	rbbi.cxIdeal = 200;
	m_wndReBar.GetReBarCtrl().SetBandInfo(2, &rbbi);

	m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);

	//建立狀態條
	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
	}
 
	//生成“我的收藏夾”子菜單
	TCHAR           sz[MAX_PATH];
	TCHAR           szPath[MAX_PATH];
	HKEY            hKey;
	DWORD           dwSize;
	CMenu*          pMenu;

	// 開始消去存在的菜單
	pMenu = GetMenu()->GetSubMenu(4);
	while(pMenu->DeleteMenu(0, MF_BYPOSITION));

	//從注冊表中找到“我的收藏夾的位置”,然后讀寫注冊表
	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);
	return 0;

}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::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
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::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;

	// 確定有'\\'字符
	if(strPath[strPath.GetLength() - 1] != _T('\\'))
		strPath += _T('\\');
	strPath2 = strPath;
	strPath += "*.*";

	// 首先掃描 .URL 然后掃描子目錄
	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::OnNewAddress()
{
	// 當組合框選中一個時,相應最新的選擇
	CString str;
	m_wndAddress.GetLBText(m_wndAddress.GetCurSel(), str);
	((CSampleBrowerView*)GetActiveView())->Navigate2(str, 0, NULL);
}

void CMainFrame::OnNewAddressEnter()
{
	// 當組合框輸入一個地址時,相應輸入;同時記錄下輸入的地址添加到組合框鏈表中
	CString str;
	m_wndAddress.GetEditCtrl()->GetWindowText(str);
	((CSampleBrowerView*)GetActiveView())->Navigate2(str, 0, NULL);
	COMBOBOXEXITEM item;
	item.mask = CBEIF_TEXT;
	item.iItem = -1;
	item.pszText = (LPTSTR)(LPCTSTR)str;
	m_wndAddress.InsertItem(&item);
}
void CMainFrame::OnFavorite(UINT nID)
{
	((CSampleBrowerView*)GetActiveView())->Navigate2(m_astrFavoriteURLs[nID-0xe00], 0, NULL);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久草精品在线观看| 国产91在线看| 国产成人av自拍| 欧美综合久久久| 国产欧美精品区一区二区三区| 亚洲欧美在线观看| 美女精品一区二区| 精品视频一区三区九区| 国产精品丝袜91| 激情综合色播五月| 欧美日韩久久久| 亚洲免费观看高清在线观看| 国产精品影视天天线| 日韩一区二区三区在线视频| 一区二区三区电影在线播| 国产东北露脸精品视频| 日韩女优毛片在线| 免费在线观看一区| 欧美日韩在线观看一区二区| 国产精品久久久久aaaa樱花 | 99精品偷自拍| 久久久久高清精品| 精品一区二区精品| 日韩一区二区电影在线| 亚洲444eee在线观看| 在线观看区一区二| 亚洲精品乱码久久久久久久久| 成人性生交大片免费看在线播放| 精品免费视频一区二区| 麻豆精品视频在线观看| 欧美精品一二三| 日日夜夜一区二区| 欧美久久久久中文字幕| 日韩精品午夜视频| 欧美人狂配大交3d怪物一区| 午夜伦欧美伦电影理论片| 欧美日韩在线播放三区| 亚洲成人av在线电影| 欧美日韩久久久久久| 日本vs亚洲vs韩国一区三区 | 精品国产乱码久久久久久图片 | **性色生活片久久毛片| 国产黄色精品视频| 国产欧美日韩在线视频| 成人中文字幕合集| 亚洲欧洲av一区二区三区久久| 国产**成人网毛片九色 | 国产亚洲欧美激情| 成人性视频免费网站| ●精品国产综合乱码久久久久| 91亚洲精品一区二区乱码| 美女诱惑一区二区| 日本欧美一区二区三区| 99久久久国产精品| 一区二区三区欧美激情| 欧美日韩在线三级| 国产在线精品国自产拍免费| 国产三区在线成人av| 91麻豆免费看片| 午夜亚洲国产au精品一区二区| 欧美一区二区三区小说| 国产一区二区看久久| 亚洲欧美怡红院| 欧美疯狂做受xxxx富婆| 国产精品资源网站| 一区二区三国产精华液| 日韩精品资源二区在线| jvid福利写真一区二区三区| 亚洲国产日韩一区二区| 精品国产1区二区| 97国产精品videossex| 奇米影视在线99精品| 国产精品色一区二区三区| 欧美日韩精品一区视频| 国产一区二区三区高清播放| 亚洲一区中文日韩| 精品盗摄一区二区三区| 91在线观看免费视频| 美女www一区二区| 亚洲欧美日韩在线| 日韩欧美一二三区| 色综合天天天天做夜夜夜夜做| 日日夜夜免费精品视频| 亚洲特黄一级片| 久久人人爽爽爽人久久久| 在线视频你懂得一区二区三区| 国产一区二区三区不卡在线观看| 亚洲一区二区四区蜜桃| 日本一二三四高清不卡| 欧美一区二区视频在线观看2022 | 一区二区欧美视频| 久久精品欧美一区二区三区麻豆| 欧美日本乱大交xxxxx| 99免费精品在线| 国产一区二区91| 日韩av中文在线观看| 一区2区3区在线看| 国产精品欧美极品| 久久精子c满五个校花| 日韩亚洲电影在线| 欧美裸体一区二区三区| 欧美伊人久久大香线蕉综合69| 国产成人在线观看免费网站| 久久精品国产在热久久| 日本在线不卡一区| 天堂蜜桃91精品| 亚洲成av人片一区二区| 亚洲女人的天堂| 亚洲乱码国产乱码精品精98午夜 | 国产精品色噜噜| 国产亚洲欧美激情| 久久久久高清精品| 国产免费观看久久| 国产三级欧美三级日产三级99| 久久久天堂av| 国产偷国产偷精品高清尤物| 久久五月婷婷丁香社区| 久久午夜免费电影| 久久久久久久一区| 国产日韩欧美高清在线| 久久久久久**毛片大全| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩女优制服丝袜电影| 久久综合狠狠综合久久激情| 精品久久人人做人人爰| 久久日韩精品一区二区五区| 久久久久99精品国产片| 国产精品色在线| 亚洲另类一区二区| 亚洲动漫第一页| 麻豆久久一区二区| 国产精品一线二线三线| 99精品国产99久久久久久白柏| 91丨porny丨蝌蚪视频| 欧美视频一区二区三区在线观看| 欧美人妇做爰xxxⅹ性高电影| 欧美一区二区播放| 国产欧美日韩亚州综合| 亚洲三级理论片| 青青草国产精品97视觉盛宴| 黄一区二区三区| 91在线视频18| 4438x成人网最大色成网站| 久久亚洲春色中文字幕久久久| 一色桃子久久精品亚洲| 婷婷六月综合亚洲| 国产成人午夜精品5599| 在线观看视频一区二区欧美日韩| 制服丝袜亚洲精品中文字幕| 久久精品这里都是精品| 一卡二卡欧美日韩| 国产麻豆欧美日韩一区| 日本久久一区二区三区| 精品国产网站在线观看| 亚洲嫩草精品久久| 蜜桃精品视频在线观看| 99久久99久久精品免费观看| 欧美肥胖老妇做爰| 国产精品国产自产拍高清av王其 | 在线观看欧美精品| 精品国产电影一区二区| 亚洲一区二区中文在线| 91丨国产丨九色丨pron| 日韩丝袜美女视频| 亚洲日本成人在线观看| 激情久久五月天| 欧美色图激情小说| 国产欧美日韩在线观看| 日本sm残虐另类| 91国偷自产一区二区三区成为亚洲经典 | 91免费看片在线观看| 精品国产sm最大网站免费看| 亚洲成人综合网站| 99re这里只有精品视频首页| 精品国产乱码91久久久久久网站| 亚洲综合免费观看高清完整版| 国产高清精品网站| 日韩视频不卡中文| 亚洲第一av色| 91官网在线免费观看| 国产精品超碰97尤物18| 国产乱一区二区| 精品欧美久久久| 奇米精品一区二区三区在线观看| 欧美亚洲一区三区| 日韩伦理av电影| 不卡视频在线看| 一区在线播放视频| 波多野结衣在线一区| 日本一区二区免费在线观看视频| 激情综合一区二区三区| 日韩精品在线一区| 秋霞午夜av一区二区三区| 欧美福利电影网| 天天av天天翘天天综合网| 欧美日韩国产高清一区二区| 亚洲国产精品精华液网站| 欧美日韩在线综合| 亚洲成人av免费| 欧美疯狂性受xxxxx喷水图片|