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

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

?? mosaicview.cpp

?? C++編程100例
?? CPP
字號:
// MosaicView.cpp : implementation of the CMosaicView class
//

#include "stdafx.h"
#include "Mosaic.h"

#include "MosaicDoc.h"
#include "MosaicView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMosaicView

IMPLEMENT_DYNCREATE(CMosaicView, CView)

BEGIN_MESSAGE_MAP(CMosaicView, CView)
	//{{AFX_MSG_MAP(CMosaicView)
	ON_COMMAND(ID_VIEW_MOSAIC, OnViewMosaic)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMosaicView construction/destruction

CMosaicView::CMosaicView()
{
	m_hDrawDib=NULL;
	m_hDrawDib=DrawDibOpen();
	HBITMAP hBmp = (HBITMAP)LoadImage( NULL,"bitmap.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE );
	
	HDC hMemDC = CreateCompatibleDC( NULL );
	if (hMemDC)
	{
		// Get bitmap size
		BITMAP bm;
		GetObject(hBmp, sizeof(bm), &bm);
		m_size=CSize(bm.bmWidth,bm.bmHeight);

		// Create a 32 bits depth bitmap and select it into the memory DC 
		BITMAPINFOHEADER RGB32BITSBITMAPINFO=
		{
			sizeof(BITMAPINFOHEADER),bm.bmWidth,bm.bmHeight,
			1,32,BI_RGB,0,0,0,0,0
		};

		m_bmpSrc=CreateDIBSection(hMemDC,(BITMAPINFO *)&RGB32BITSBITMAPINFO,DIB_RGB_COLORS,(VOID **)&m_clrSrc,NULL,0);

		if( m_bmpSrc )
		{
			HBITMAP hOldBmp = (HBITMAP)SelectObject(hMemDC,m_bmpSrc);

			// Create a DC just to copy the bitmap into the memory DC
			HDC hDC = CreateCompatibleDC(hMemDC);
			if (hDC)
			{
				// Copy the bitmap into the memory DC
				HBITMAP hOldBmp2 = (HBITMAP)SelectObject(hDC, hBmp);
				BitBlt(hMemDC, 0, 0, bm.bmWidth, bm.bmHeight, hDC, 0, 0, SRCCOPY);
				SelectObject(hDC, hOldBmp2);
				DeleteDC(hDC);
			}
			SelectObject(hMemDC, hOldBmp);
		}
		DeleteDC(hMemDC);
	}
}

CMosaicView::~CMosaicView()
{
	if( m_hDrawDib != NULL)
	{
		DrawDibClose( m_hDrawDib);
		m_hDrawDib = NULL;
	}

	if( m_bmpSrc != NULL )
		DeleteObject(m_bmpSrc);
}

BOOL CMosaicView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMosaicView drawing

void CMosaicView::OnDraw(CDC* pDC)
{
	CMosaicDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	if( m_hDrawDib != NULL && m_bmpSrc != NULL )
	{
		BITMAPINFOHEADER RGB32BITSBITMAPINFO=
		{
			sizeof(BITMAPINFOHEADER),m_size.cx,m_size.cy,
			1,32,BI_RGB,0,0,0,0,0
		};

		DrawDibRealize( m_hDrawDib, pDC->GetSafeHdc(), TRUE);

		DrawDibDraw( m_hDrawDib,pDC->GetSafeHdc(),10,10,m_size.cx,
			m_size.cy,&RGB32BITSBITMAPINFO,(LPVOID)m_clrSrc,
			0,0,m_size.cx,m_size.cy,DDF_BACKGROUNDPAL);
	}
}

/////////////////////////////////////////////////////////////////////////////
// CMosaicView diagnostics

#ifdef _DEBUG
void CMosaicView::AssertValid() const
{
	CView::AssertValid();
}

void CMosaicView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CMosaicDoc* CMosaicView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMosaicDoc)));
	return (CMosaicDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMosaicView message handlers

void CMosaicView::OnViewMosaic() 
{
	if( m_bmpSrc == NULL || m_hDrawDib == NULL ) return;

	Invalidate();
	int nTileSize=10;//小方塊的大小
	
	int nTileNum=( (m_size.cx+nTileSize-1)/nTileSize )*( (m_size.cy+nTileSize-1)/nTileSize );
	//給紀錄小方塊左上角坐標的POINTS結構數據分配內存
	POINT *pt=new POINT[nTileNum];
	//初始化數據
	int x=0;
	int y=0;
	int i;
	for(i=0;i<nTileNum;i++)
	{
		pt[i].x=x;
		pt[i].y=y;
		x=x+nTileSize;
		if(x>m_size.cx)
		{
			x=0;
			y=y+nTileSize;
		}
	}

	BITMAPINFOHEADER RGB32BITSBITMAPINFO=
		{
			sizeof(BITMAPINFOHEADER),m_size.cx,m_size.cy,
			1,32,BI_RGB,0,0,0,0,0
		};

	CPaintDC dc(this);
	DrawDibRealize( m_hDrawDib, dc.GetSafeHdc(), TRUE);

	//開始隨機顯示小方塊
	double fMax=RAND_MAX;
	for(i=nTileNum-1;i>=0;i--)
	{
		int n=(int) ((double)nTileNum*rand()/fMax);
		x=pt[n].x;
		y=pt[n].y;

		DrawDibDraw( m_hDrawDib,dc.GetSafeHdc(),10+x,10+y,nTileSize,
			nTileSize,&RGB32BITSBITMAPINFO,(LPVOID)m_clrSrc,
			x,y,nTileSize,nTileSize,DDF_BACKGROUNDPAL);
		pt[n].x=pt[i].x;
		pt[n].y=pt[i].y;
		Sleep(20);
	}
	delete[] pt;//釋放內存

	DrawDibDraw( m_hDrawDib,dc.GetSafeHdc(),10,10,m_size.cx,
		m_size.cy,&RGB32BITSBITMAPINFO,(LPVOID)m_clrSrc,
		0,0,m_size.cx,m_size.cy,DDF_BACKGROUNDPAL);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品私人自拍| 欧美理论电影在线| 久久国产剧场电影| 婷婷久久综合九色综合绿巨人| 亚洲视频中文字幕| 夜夜精品视频一区二区| 亚洲一级二级三级| 午夜精品福利一区二区三区av| 亚洲电影在线免费观看| 亚洲一区二区在线视频| 日韩av一区二区在线影视| 日本不卡一二三| 久久国产精品色婷婷| 国产成人免费视频网站高清观看视频| 国产91丝袜在线播放0| 成人国产精品视频| 色综合久久久久| 欧美日韩成人在线| 国产亚洲成aⅴ人片在线观看| 国产午夜精品在线观看| 亚洲欧美日韩成人高清在线一区| 亚洲一二三区视频在线观看| 免费成人av在线| 大白屁股一区二区视频| 在线观看91视频| 在线91免费看| 国产精品欧美一区喷水| 婷婷久久综合九色国产成人| 国产剧情一区二区三区| 色综合久久中文综合久久97| 日韩女同互慰一区二区| 国产精品久久久久一区| 日韩精品亚洲一区| 粉嫩aⅴ一区二区三区四区五区 | 国产一区二区精品久久99| 大胆欧美人体老妇| 这里只有精品视频在线观看| 国产精品三级av| 奇米综合一区二区三区精品视频 | 亚洲老司机在线| 蜜臀91精品一区二区三区| 成人一区二区三区在线观看| 欧美精品第1页| 亚洲视频一区在线观看| 国内精品伊人久久久久影院对白| 91原创在线视频| 久久久久久麻豆| 丝袜亚洲另类丝袜在线| 成人污视频在线观看| 日韩三级免费观看| 亚洲在线视频一区| 成人激情文学综合网| 久久综合色8888| 日本亚洲免费观看| 欧美久久久久久久久中文字幕| 成人欧美一区二区三区黑人麻豆 | 亚洲成av人片一区二区三区| 94色蜜桃网一区二区三区| 欧美mv日韩mv国产网站| 日韩高清中文字幕一区| 欧美体内she精高潮| 亚洲欧美二区三区| 色综合久久综合网97色综合| 日本一区二区三级电影在线观看| 久久66热偷产精品| 日韩亚洲国产中文字幕欧美| 婷婷亚洲久悠悠色悠在线播放| 欧美在线观看一区二区| 亚洲人亚洲人成电影网站色| 成人av网址在线| 国产精品久久久久久久久久免费看| 国产一区二区免费看| 国产欧美日韩不卡| 成a人片国产精品| 日韩一区有码在线| 欧美午夜片在线观看| 亚洲国产日韩综合久久精品| 欧美色精品天天在线观看视频| 亚洲伊人伊色伊影伊综合网| 欧美唯美清纯偷拍| 日韩国产在线一| 日韩欧美国产三级电影视频| 黄色资源网久久资源365| 精品国产电影一区二区| 国产成人午夜视频| 亚洲欧美一区二区在线观看| 欧美亚洲图片小说| 男女视频一区二区| 久久久高清一区二区三区| 91色porny| 视频一区二区不卡| 国产日韩精品视频一区| 国产99久久久久| 欧美电影免费观看高清完整版在线观看 | 日韩欧美一区二区在线视频| 欧美性猛交xxxxxxxx| 亚洲成a人片综合在线| 精品美女在线观看| 懂色av噜噜一区二区三区av| 亚洲欧美偷拍三级| 91精品欧美一区二区三区综合在 | 亚洲午夜精品久久久久久久久| 欧美色窝79yyyycom| 国产综合色产在线精品| 亚洲蜜桃精久久久久久久| 91麻豆精品国产91久久久使用方法| 激情另类小说区图片区视频区| 国产精品三级久久久久三级| 欧美精品亚洲二区| 国产91丝袜在线18| 婷婷久久综合九色综合绿巨人| 久久精品欧美一区二区三区不卡 | 毛片不卡一区二区| 国产精品免费视频网站| 91精品婷婷国产综合久久竹菊| 国产成人高清在线| 日韩专区在线视频| 国产精品嫩草99a| 日韩免费看网站| 色婷婷综合久久久中文字幕| 久久99精品久久久久久国产越南 | 精品一区二区三区免费| 亚洲国产精品成人综合| 91精品国产色综合久久| zzijzzij亚洲日本少妇熟睡| 久久99精品国产麻豆不卡| 一区二区三区四区乱视频| 日本一区免费视频| 精品国产伦一区二区三区免费| 欧美三级电影网| 91香蕉视频黄| 国产91色综合久久免费分享| 国内精品国产成人| 日本特黄久久久高潮| 亚洲蜜桃精久久久久久久| 国产精品久久久久久久久免费丝袜 | 精品福利二区三区| 欧美男女性生活在线直播观看| av电影在线观看一区| 成人18精品视频| 成人免费看黄yyy456| 国产成人一区在线| 国产suv精品一区二区6| 国产精品一区二区三区四区| 极品销魂美女一区二区三区| 免费视频一区二区| 日本欧美肥老太交大片| 日韩av在线免费观看不卡| 日本中文在线一区| 国产不卡视频在线播放| 久久99国产精品免费| 国模套图日韩精品一区二区| 久久激五月天综合精品| 狠狠网亚洲精品| 国产精品一区二区在线播放 | 亚洲电影一级黄| 午夜精品aaa| 日本欧美一区二区三区| 精品一区在线看| 国产麻豆精品久久一二三| 国产精品一二三四五| 国产91高潮流白浆在线麻豆| 国产精品一区二区91| 成人精品视频一区二区三区 | 亚洲成av人片观看| 日韩1区2区日韩1区2区| 久久国产福利国产秒拍| 国产电影一区在线| 99免费精品视频| 欧美性色欧美a在线播放| 欧美男人的天堂一二区| 日韩欧美国产三级电影视频| 久久精品人人做人人综合| 亚洲同性同志一二三专区| 一区二区国产视频| 美女视频网站黄色亚洲| 国产精品亚洲午夜一区二区三区| 成人毛片在线观看| 91国产免费观看| 日韩片之四级片| 欧美国产一区在线| 亚洲一区视频在线观看视频| 蜜桃视频免费观看一区| 成人精品一区二区三区中文字幕| 欧美偷拍一区二区| 日韩欧美的一区| 亚洲人123区| 久久精品国产99久久6| 91视频你懂的| 精品日产卡一卡二卡麻豆| 国产精品麻豆99久久久久久| 亚洲妇熟xx妇色黄| 国产99一区视频免费| 91麻豆精品国产91久久久更新时间| 日韩精品一区二区三区三区免费 | 欧美一区二区三区精品| 国产精品久久精品日日| 日本大胆欧美人术艺术动态 | 久久精品99国产精品日本| 99re这里只有精品6|