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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? picture.cpp

?? 電子交通地圖
?? CPP
字號(hào):
////////////////////////////////////////////////////////////////
// MSDN Magazine -- October 2001
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual C++ 6.0 for Windows 98 and probably Windows 2000 too.
// Set tabsize = 3 in your editor.
//
#include "StdAfx.h"
#include "Picture.h"

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

////////////////////////////////////////////////////////////////
// CPicture implementation
//

CPicture::CPicture()
{
}

CPicture::~CPicture()
{
	if(this->m_spIPicture) Free();
}

//////////////////
// Load from resource. Looks for "IMAGE" type.
//
BOOL CPicture::Load(UINT nIDRes,LPCTSTR resType)
{
	// find resource in resource file
	return Load(MAKEINTRESOURCE(nIDRes),resType); 

}

//////////////////
// Load from path name.
//
BOOL CPicture::Load(LPCTSTR pszPathName)
{
	CFile file;
	if (!file.Open(pszPathName, CFile::modeRead|CFile::shareDenyWrite))
		return FALSE;
	BOOL bRet = Load(file);
	file.Close();
	return bRet;
}

//////////////////
// Load from CFile
//
BOOL CPicture::Load(CFile& file)
{
	DWORD dwSize=file.GetLength();
	HGLOBAL hglobal=GlobalAlloc(GMEM_MOVEABLE | GMEM_NODISCARD,dwSize);
	BYTE *buffer=reinterpret_cast<BYTE*>(GlobalLock(hglobal));;
	file.SeekToBegin();
	file.ReadHuge(buffer,dwSize);
	BOOL hr=Load(hglobal,dwSize);
	GlobalUnlock(hglobal);
	GlobalFree(hglobal);
	return hr;
}

///////////////////
// load from buffer
///////////////////
BOOL CPicture::Load(HGLOBAL hGlobal, DWORD buflen)
{
	IStream *istm=NULL;
	if (CreateStreamOnHGlobal(hGlobal,FALSE,&istm) != S_OK)
			return FALSE;
	BOOL bRet = Load(istm);
	istm->Release();
	return bRet;
}


//////////////////
// Load from stream (IStream). This is the one that really does it: call
// OleLoadPicture to do the work.
//
BOOL CPicture::Load(IStream* pstm)
{
	Free();
	HRESULT hr = OleLoadPicture(pstm, 0, FALSE,
		IID_IPicture, (void**)&m_spIPicture);
	return (SUCCEEDED(hr) && m_spIPicture);	
}

//////////////////
// Render to device context. Covert to HIMETRIC for IPicture.
//
BOOL CPicture::Render(CDC* pDC, CRect rc,int zoomtype) const
{
	ASSERT(pDC);
	CSize sz = GetImageSize(pDC);

	if (rc.IsRectNull()) {
		rc.right = sz.cx;
		rc.bottom = sz.cy;
	}
	long hmWidth,hmHeight; // HIMETRIC units
	GetHIMETRICSize(hmWidth, hmHeight);
	int wid,hei;
	CRect rect=rc;
	switch(zoomtype)
	{
	case 0:
		rect.left=rc.left+(rc.Width()-sz.cx)/2;
		rect.right=rc.right-(rc.Width()-sz.cx)/2;
		rect.top=rc.top+(rc.Height()-sz.cy)/2;
		rect.bottom =rc.bottom -(rc.Height()-sz.cy)/2;
		break;
	case 1:
		wid=rc.Width(),hei=hmHeight*wid/hmWidth;
		if(hei>rc.Height())	hei=rc.Height(),wid=hmWidth*hei/hmHeight;
		if(wid==rc.Width())	rect.SetRect(rc.left,rc.top+(rc.Height()-hei)/2,rc.right,rc.bottom-(rc.Height()-hei)/2);
		else rect.SetRect(rc.left+(rc.Width()-wid)/2,rc.top,rc.right-(rc.Width()-wid)/2,rc.bottom);
		break;
	default:
		break;
	}
	m_spIPicture->Render(*pDC, rect.left, rect.top, rect.Width(), rect.Height(),
		0, hmHeight, hmWidth, -hmHeight, NULL);

	return TRUE;
}

//////////////////
// Get image size in pixels. Converts from HIMETRIC to device coords.
//
CSize CPicture::GetImageSize(CDC* pDC) const
{
	if (!m_spIPicture)
		return CSize(0,0);
	
	LONG hmWidth, hmHeight; // HIMETRIC units
	m_spIPicture->get_Width(&hmWidth);
	m_spIPicture->get_Height(&hmHeight);
	CSize sz(hmWidth,hmHeight);
	if (pDC==NULL) {
		CWindowDC dc(NULL);
		dc.HIMETRICtoDP(&sz); // convert to pixels
	} else {
		pDC->HIMETRICtoDP(&sz);
	}
	return sz;
}




BOOL CPicture::Load(LPCTSTR resstr, LPCTSTR restype)
{
	HINSTANCE hInst = AfxGetResourceHandle();
	HRSRC hRsrc = ::FindResource(hInst,
		resstr,
		restype); // type
	if (!hRsrc)
		return FALSE;

	// load resource into memory
	DWORD len = SizeofResource(hInst, hRsrc);
	BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);
	if (!lpRsrc)
		return FALSE;

	// create memory file and load it
	CMemFile file(lpRsrc, len);
	BOOL bRet = Load(file);
	FreeResource(hRsrc);
	GlobalFree(lpRsrc);
	return bRet;
}

BOOL CPicture::Render(CDC *pDC,
					  int x, int y,int nWidth, int nHeight,
					  int xSrc, int ySrc, int nSrcWidth, int nSrcHeight)
{
	CSize lefttop,rightbottom;
	lefttop.cx=xSrc,lefttop.cy=ySrc;
	rightbottom.cx=nSrcWidth,rightbottom.cy=nSrcHeight;
	pDC->DPtoHIMETRIC(&lefttop);
	pDC->DPtoHIMETRIC(&rightbottom);
	LONG hmWidth, hmHeight; // HIMETRIC units
	m_spIPicture->get_Width(&hmWidth);
	m_spIPicture->get_Height(&hmHeight);
	m_spIPicture->Render(*pDC, x,y, nWidth,nHeight,lefttop.cx, hmHeight-lefttop.cy, rightbottom.cx, -rightbottom.cy, NULL);
	return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费在线电影 | 一区免费观看视频| 久久无码av三级| 欧美精品一区二区在线播放| 在线成人高清不卡| 欧美一区二区日韩| 日韩一区和二区| 精品国产乱码久久久久久闺蜜 | 精品久久久久久久久久久久久久久久久| 欧美精三区欧美精三区| 欧美肥胖老妇做爰| 日韩视频免费观看高清完整版在线观看 | 免费高清不卡av| 麻豆91精品视频| 国产在线播放一区| 处破女av一区二区| 91在线一区二区| 欧美日韩在线一区二区| 5858s免费视频成人| 欧美xingq一区二区| 欧美国产日韩在线观看| 国产精品国产三级国产aⅴ无密码| 中文字幕在线一区| 亚洲黄色小视频| 日韩精品五月天| 黑人巨大精品欧美一区| 波多野结衣欧美| 欧美天天综合网| 欧美一区永久视频免费观看| 精品999在线播放| 国产精品久久久久久久久免费桃花| 亚洲麻豆国产自偷在线| 日韩一区欧美二区| 国产福利视频一区二区三区| 99精品视频免费在线观看| 欧美午夜宅男影院| 欧美色倩网站大全免费| 精品视频色一区| 日韩精品一区二区三区在线观看 | www.欧美.com| 欧美性猛交一区二区三区精品| 欧美一区二区三区婷婷月色| 久久精品视频在线看| 一区二区三区在线免费| 麻豆91小视频| 99久久精品国产一区二区三区| 91精品国产综合久久精品麻豆| 久久天天做天天爱综合色| 一级特黄大欧美久久久| 激情五月播播久久久精品| 99久久国产免费看| 欧美成人乱码一区二区三区| 国产精品二区一区二区aⅴ污介绍| 午夜伦理一区二区| 国产成人丝袜美腿| 欧美理论电影在线| 中文字幕在线播放不卡一区| 青青草原综合久久大伊人精品优势| 国产精品自拍三区| 欧美精品vⅰdeose4hd| 国产午夜一区二区三区| 日日骚欧美日韩| 91视频xxxx| 欧美mv和日韩mv国产网站| 一区二区三区在线观看动漫| 国产原创一区二区| 欧美剧在线免费观看网站| 亚洲欧美在线视频| 精彩视频一区二区| 欧美精品久久99久久在免费线| 国产精品二三区| 国产一区二区三区av电影| 欧美老肥妇做.爰bbww视频| 亚洲欧洲日韩综合一区二区| 韩国av一区二区三区| 在线播放中文一区| 亚洲丝袜另类动漫二区| 国产精品亚洲人在线观看| 欧美电影在哪看比较好| 一区二区三区四区激情| gogogo免费视频观看亚洲一| 久久久久久**毛片大全| 美女网站色91| 欧美精品在线观看一区二区| 一区二区日韩av| 91麻豆产精品久久久久久| 国产清纯在线一区二区www| 黄色日韩网站视频| 日韩午夜激情免费电影| 日本一不卡视频| 欧美另类z0zxhd电影| 亚洲成人综合视频| 欧美在线短视频| 亚洲综合免费观看高清完整版在线 | 久久精品人人做人人爽人人| 麻豆久久久久久久| 日韩欧美视频在线| 美女网站色91| 精品毛片乱码1区2区3区| 免费在线看成人av| 日韩欧美视频一区| 激情综合网激情| 337p粉嫩大胆噜噜噜噜噜91av | 亚洲成人动漫在线免费观看| 91高清视频免费看| 一区二区三区四区蜜桃| 色狠狠一区二区| 亚洲第一狼人社区| 欧美日韩情趣电影| 日韩中文欧美在线| 日韩一区二区视频| 国产真实乱偷精品视频免| 久久久另类综合| 成人一区二区三区在线观看| 国产精品国产三级国产普通话三级| 成人性视频免费网站| 国产精品国产自产拍高清av王其| 99re亚洲国产精品| 一区二区三区在线播放| 欧美军同video69gay| 久久精品av麻豆的观看方式| 精品久久五月天| 成人精品一区二区三区中文字幕| 中文字幕制服丝袜成人av| 色久优优欧美色久优优| 日韩成人一级片| 久久久久9999亚洲精品| 99久久99久久综合| 日韩精品一级二级| 国产亚洲一区二区在线观看| av一区二区不卡| 亚洲午夜激情av| 精品成人佐山爱一区二区| 豆国产96在线|亚洲| 亚洲一二三专区| 精品国产三级a在线观看| 成人免费看片app下载| 亚洲精选一二三| 欧美一级免费大片| 成人理论电影网| 日韩av中文字幕一区二区| 国产视频在线观看一区二区三区| 91国产精品成人| 韩国理伦片一区二区三区在线播放| 中文字幕中文字幕一区二区| 欧美男同性恋视频网站| 国产suv精品一区二区6| 亚洲最大成人网4388xx| 久久久一区二区三区捆绑**| 色婷婷av一区二区三区gif| 美女精品一区二区| 亚洲欧美另类综合偷拍| 日韩一区二区电影| eeuss国产一区二区三区| 青娱乐精品视频| **欧美大码日韩| 精品日韩欧美在线| 在线免费观看日本一区| 国产一区 二区 三区一级| 一区二区三区四区精品在线视频| 久久一日本道色综合| 欧美午夜理伦三级在线观看| 国产一区二区在线观看免费| 亚洲一级片在线观看| 国产嫩草影院久久久久| 欧美一区二区观看视频| 91麻豆精品视频| 国产夫妻精品视频| 美女高潮久久久| 亚洲国产精品欧美一二99| 国产精品国产三级国产普通话三级| 日韩免费福利电影在线观看| 在线观看一区二区视频| 成人免费福利片| 久久成人羞羞网站| 日韩精品视频网站| 一区二区成人在线| 椎名由奈av一区二区三区| 国产亚洲成aⅴ人片在线观看 | 欧美国产一区在线| 精品久久99ma| 69精品人人人人| 欧美视频完全免费看| 色综合久久中文综合久久牛| 国产成人8x视频一区二区| 蜜桃视频一区二区三区| 五月天婷婷综合| 亚洲国产综合在线| 亚洲欧美另类小说视频| 亚洲欧洲一区二区三区| 国产免费观看久久| 欧美经典一区二区| 国产亚洲成av人在线观看导航| 欧美大尺度电影在线| 日韩一二三区不卡| 欧美一区二区三区视频| 91精品麻豆日日躁夜夜躁| 91精品久久久久久久久99蜜臂| 欧美高清精品3d| 欧美精品一级二级三级|