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

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

?? myview.cpp

?? 這是樹上的代碼
?? CPP
字號:
// MyView.cpp : implementation of the CMyView class
//

#include "stdafx.h"
#include "My.h"

#include "MyDoc.h"
#include "MyView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyView

IMPLEMENT_DYNCREATE(CMyView, CView)

BEGIN_MESSAGE_MAP(CMyView, CView)
	//{{AFX_MSG_MAP(CMyView)
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyView construction/destruction

CMyView::CMyView()
{
	// TODO: add construction code here
	// 載入位圖資源,讀位圖信息
	m_Bitmap.LoadBitmap(IDB_BITMAP1);
	BITMAP BM;
	m_Bitmap.GetBitmap(&BM);
	m_nWidth = BM.bmWidth;
	m_nHeight = BM.bmHeight;

}

CMyView::~CMyView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMyView drawing

// 響應繪制窗口客戶區消息
void CMyView::OnDraw(CDC* pDC)
{
	CMyDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	// 顯示位圖
	pDoc->m_pView=this;
	CDC MemDC;
	MemDC.CreateCompatibleDC(NULL);
	MemDC.SelectObject(&m_Bitmap);
	pDC->BitBlt(0,0,m_nWidth,m_nHeight,&MemDC,0,0,SRCCOPY);
	pDC->TextOut(10,180,"單擊鼠標左鍵保存客戶區");
}

/////////////////////////////////////////////////////////////////////////////
// CMyView printing

BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CMyView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CMyView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CMyView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CMyView message handlers
BOOL CMyView::WriteWindowToDIB( LPTSTR szFile, CWnd *pWnd )
{
	CBitmap 	bitmap;
	CWindowDC	dc(pWnd);
	CDC 		memDC;
	CRect		rect;

	memDC.CreateCompatibleDC(&dc);//創建內存設備環境對象
	pWnd->GetWindowRect(rect);//取得窗口區域大小
	bitmap.CreateCompatibleBitmap(&dc, rect.Width(),rect.Height() );
	//創建一個位圖對對象,并將窗口圖像暫存其中
	CBitmap* pOldBitmap = memDC.SelectObject(&bitmap);
	memDC.BitBlt(0, 0, rect.Width(),rect.Height(), &dc, 0, 0, SRCCOPY);
	// 如果設備支持調色板,創建調色板
	CPalette pal;
	if( dc.GetDeviceCaps(RASTERCAPS) & RC_PALETTE )
	{
		UINT nSize = sizeof(LOGPALETTE) + (sizeof(PALETTEENTRY) * 256);
		LOGPALETTE *pLP = (LOGPALETTE *) new BYTE[nSize];
		pLP->palVersion = 0x300;

		pLP->palNumEntries =
			GetSystemPaletteEntries( dc, 0, 255, pLP->palPalEntry );
		// 創建調色板
		pal.CreatePalette( pLP );
		delete[] pLP;
	}
	memDC.SelectObject(pOldBitmap);
	HANDLE hDIB = DDBToDIB( bitmap, BI_RGB, &pal );// 轉換Bitmap 到DIB
	if( hDIB == NULL )
		return FALSE;
	WriteDIB( szFile, hDIB );//將DIB保存到文件
	GlobalFree( hDIB );//釋放DIB對象所占空間
	return TRUE;
}
// DDBToDIB		- Creates a DIB from a DDB
// bitmap		- Device dependent bitmap
// dwCompression	- Type of compression - see BITMAPINFOHEADER
// pPal			- Logical palette
HANDLE CMyView::DDBToDIB( CBitmap& bitmap, DWORD dwCompression, CPalette* pPal )
{
	BITMAP			bm;
	BITMAPINFOHEADER	bi;
	LPBITMAPINFOHEADER 	lpbi;
	DWORD			dwLen;
	HANDLE			hDIB;
	HANDLE			handle;
	HDC 			hDC;
	HPALETTE		hPal;

	ASSERT( bitmap.GetSafeHandle() );
	if( dwCompression == BI_BITFIELDS )//位圖是否壓縮
		return NULL;
	hPal = (HPALETTE) pPal->GetSafeHandle();//選擇調色板
	if (hPal==NULL)
		hPal = (HPALETTE) GetStockObject(DEFAULT_PALETTE);
	bitmap.GetObject(sizeof(bm),(LPSTR)&bm);//獲取位圖的屬性信息
	// 初始化位圖文件頭結構
	bi.biSize		= sizeof(BITMAPINFOHEADER);
	bi.biWidth		= bm.bmWidth;
	bi.biHeight 		= bm.bmHeight;
	bi.biPlanes 		= 1;
	bi.biBitCount		= bm.bmPlanes * bm.bmBitsPixel;
	bi.biCompression	= dwCompression;
	bi.biSizeImage		= 0;
	bi.biXPelsPerMeter	= 0;
	bi.biYPelsPerMeter	= 0;
	bi.biClrUsed		= 0;
	bi.biClrImportant	= 0;
	// 計算位圖信息結構和位圖顏色表的大小
	int nColors = (1 << bi.biBitCount);
	if( nColors > 256 )
		nColors = 0;
	dwLen  = bi.biSize + nColors * sizeof(RGBQUAD);
	// 為DIB創建一個設備環境
	hDC = ::GetDC(NULL);
	hPal = SelectPalette(hDC,hPal,FALSE);
	RealizePalette(hDC);
	// 為位圖信息頭結構和顏色表分配內存
	hDIB = GlobalAlloc(GMEM_FIXED,dwLen);
	if (!hDIB){
		SelectPalette(hDC,hPal,FALSE);
		::ReleaseDC(NULL,hDC);
		return NULL;
	}
	lpbi = (LPBITMAPINFOHEADER)hDIB;
	*lpbi = bi;
	// 計算位圖字節數
	GetDIBits(hDC, (HBITMAP)bitmap.GetSafeHandle(), 0L, (DWORD)bi.biHeight,
			(LPBYTE)NULL, (LPBITMAPINFO)lpbi, (DWORD)DIB_RGB_COLORS);
	bi = *lpbi;
	// 如果biSizeImage為0,重新計算
	if (bi.biSizeImage == 0){
		bi.biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8)
						* bi.biHeight;
		if (dwCompression != BI_RGB)//如果為圖壓縮
			bi.biSizeImage = (bi.biSizeImage * 3) / 2;
	}
	// 給最終的位圖尺寸分配內存塊,包括位圖信息頭結構和顏色表與位圖字節數
	dwLen += bi.biSizeImage;
	if (handle = GlobalReAlloc(hDIB, dwLen, GMEM_MOVEABLE))
		hDIB = handle;
	else{
		GlobalFree(hDIB);

		// 重新選擇原始調色板
		SelectPalette(hDC,hPal,FALSE);
		::ReleaseDC(NULL,hDC);
		return NULL;
	}
	lpbi = (LPBITMAPINFOHEADER)hDIB;
	BOOL bGotBits = GetDIBits( hDC, (HBITMAP)bitmap.GetSafeHandle(),
				0L,				// Start scan line
				(DWORD)bi.biHeight,		// # of scan lines
				(LPBYTE)lpbi 			// address for bitmap bits
				+ (bi.biSize + nColors * sizeof(RGBQUAD)),
				(LPBITMAPINFO)lpbi,		// address of bitmapinfo
				(DWORD)DIB_RGB_COLORS);		// Use RGB for color table
	if( !bGotBits )
	{
		GlobalFree(hDIB);

		SelectPalette(hDC,hPal,FALSE);
		::ReleaseDC(NULL,hDC);
		return NULL;
	}
	SelectPalette(hDC,hPal,FALSE);
	::ReleaseDC(NULL,hDC);
	return hDIB;
}
// WriteDIB - Writes a DIB to file
// Returns - TRUE on success
// szFile - Name of file to write to
// hDIB - Handle of the DIB
BOOL CMyView::WriteDIB( LPTSTR szFile, HANDLE hDIB)
{
	BITMAPFILEHEADER hdr;
	LPBITMAPINFOHEADER lpbi;
	if (!hDIB)
		return FALSE;
	CFile file;
	if( !file.Open( szFile, CFile::modeWrite|CFile::modeCreate) )
		return FALSE;
	lpbi = (LPBITMAPINFOHEADER)hDIB;
	int nColors = 1 << lpbi->biBitCount;
	// 填充為圖文件頭結構
	hdr.bfType = ((WORD) ('M' << 8) | 'B'); // "BM"標志
	hdr.bfSize=::GlobalSize (hDIB) + sizeof( hdr );
	hdr.bfReserved1=0;
	hdr.bfReserved2=0; 
	hdr.bfOffBits=(DWORD) (sizeof( hdr ) + lpbi->biSize +nColors * sizeof(RGBQUAD));
	file.Write( &hdr, sizeof(hdr) );
	// DIB頭結構和位圖像素數據存盤
	file.Write( lpbi, GlobalSize(hDIB) );
	return TRUE;
}

void CMyView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	WriteWindowToDIB( "My.bmp", this );
	CView::OnLButtonDown(nFlags, point);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线国产观看| 91麻豆福利精品推荐| 亚洲gay无套男同| 亚洲一区二区欧美| 午夜精品久久久久久久99水蜜桃| 亚洲精品中文字幕乱码三区| 伊人一区二区三区| 亚洲一区二区三区不卡国产欧美| 亚洲国产精品精华液网站| 亚洲综合无码一区二区| 午夜视频在线观看一区| 日韩影视精彩在线| 韩国欧美一区二区| 国产精品一品视频| 99这里只有精品| 欧美日韩在线免费视频| 欧美一区二区三区精品| 国产午夜亚洲精品羞羞网站| 中日韩av电影| 亚洲一卡二卡三卡四卡无卡久久 | 日韩欧美国产精品| 日韩精品一区二区三区老鸭窝 | 亚洲国产一区视频| 首页综合国产亚洲丝袜| 国产精品一区久久久久| 一本色道久久综合狠狠躁的推荐 | 亚洲gay无套男同| 激情亚洲综合在线| 99久久精品99国产精品| 日韩一级免费观看| 国产精品成人午夜| 日韩电影在线一区二区| aaa亚洲精品| 日韩欧美精品在线| 国产精品九色蝌蚪自拍| 天天色天天操综合| 成人午夜激情片| 欧美一区二区日韩| 亚洲四区在线观看| 国内外精品视频| 欧美一a一片一级一片| 久久久久久久久久美女| 午夜精品福利久久久| 成人自拍视频在线观看| 日韩午夜在线影院| 亚洲精品成人精品456| 国产精品影视天天线| 欧美一区二区三区视频免费 | 亚洲图片有声小说| 懂色av噜噜一区二区三区av| 在线成人高清不卡| √…a在线天堂一区| 国产一区二区三区观看| 制服丝袜国产精品| 亚洲午夜精品一区二区三区他趣| 成人综合激情网| 国产午夜亚洲精品羞羞网站| 久久国产剧场电影| 欧美精品在线观看一区二区| 自拍偷拍亚洲综合| 国产福利精品导航| 精品成人免费观看| 老司机精品视频线观看86| 欧美日韩视频在线观看一区二区三区 | 最近中文字幕一区二区三区| 国模无码大尺度一区二区三区 | 精品一区二区三区免费视频| 欧美网站一区二区| 亚洲精品乱码久久久久久黑人| 国产成人免费视频网站高清观看视频 | 在线亚洲高清视频| 亚洲精品欧美专区| 91麻豆福利精品推荐| 中文字幕一区免费在线观看| 成人免费观看视频| 中文字幕中文字幕中文字幕亚洲无线| 国产一区二区三区在线观看免费视频 | 91啪在线观看| 自拍视频在线观看一区二区| av中文字幕不卡| 亚洲激情av在线| 欧美精品久久一区二区三区| 日韩精品欧美精品| 日韩欧美国产高清| 成人综合日日夜夜| 亚洲情趣在线观看| 在线亚洲一区二区| 三级成人在线视频| 日韩欧美不卡在线观看视频| 国产精品综合视频| 18涩涩午夜精品.www| 欧美日韩在线三区| 狠狠色狠狠色综合日日91app| 久久网这里都是精品| 成人一区二区三区视频| 亚洲精品成人少妇| 日韩精品专区在线影院观看| 激情综合色综合久久综合| 国产精品麻豆一区二区| 91成人免费在线| 麻豆精品久久精品色综合| 久久久精品日韩欧美| 色噜噜狠狠色综合欧洲selulu| 亚洲一区二区三区四区不卡| 日韩视频一区二区三区| 粉嫩欧美一区二区三区高清影视| 亚洲欧美成aⅴ人在线观看| 欧美精品日韩精品| 成人午夜视频免费看| 最好看的中文字幕久久| 欧美丝袜第三区| 国产精品中文字幕一区二区三区| 亚洲女同女同女同女同女同69| 日韩视频在线你懂得| 99热国产精品| 国产原创一区二区| 亚洲一区二区三区四区五区黄 | 亚洲三级在线免费| 欧美xxxx老人做受| 色成人在线视频| 国产伦精品一区二区三区在线观看| 中文字幕在线免费不卡| xf在线a精品一区二区视频网站| 色婷婷综合久久久中文一区二区| 久久精品免费看| 亚洲一区二区三区中文字幕 | 亚洲成a人片在线观看中文| 国产亚洲欧美激情| 欧美一区二区久久久| 色综合天天综合在线视频| 寂寞少妇一区二区三区| 午夜视频在线观看一区二区 | 亚洲一区二区视频在线观看| 国产欧美一区二区三区鸳鸯浴| 欧美剧在线免费观看网站| www.激情成人| 国产精品一区在线观看乱码 | 91久久精品午夜一区二区| 国产在线看一区| 日韩激情一区二区| 亚洲 欧美综合在线网络| 亚洲免费成人av| 国产精品久久久久久久久动漫 | 国产亚洲一区字幕| 精品国产网站在线观看| 欧美日韩一区二区在线观看| 91蝌蚪porny| 成人av网址在线观看| 国产综合久久久久久久久久久久| 日韩国产精品久久久| 午夜激情综合网| 亚洲123区在线观看| 天天色综合成人网| 日本在线不卡视频| 麻豆久久久久久| 六月丁香婷婷色狠狠久久| 日韩中文字幕区一区有砖一区 | 黄网站免费久久| 蜜桃视频在线一区| 久久99精品久久久久久动态图| 奇米888四色在线精品| 久久成人免费网| 韩日av一区二区| 国产成人一区在线| 97精品国产97久久久久久久久久久久| 白白色亚洲国产精品| 91在线免费播放| 欧美天堂一区二区三区| 91精品国产一区二区三区香蕉 | 色哟哟亚洲精品| 欧美亚洲综合久久| 3751色影院一区二区三区| 欧美xxx久久| 亚洲欧美综合网| 亚洲影视资源网| 麻豆极品一区二区三区| 国产一区二区三区| 成人国产亚洲欧美成人综合网| 色综合天天综合在线视频| 欧美日韩国产一区二区三区地区| 777久久久精品| 国产欧美日韩在线| 一区二区视频在线看| 丝袜脚交一区二区| 久久99精品国产麻豆婷婷洗澡| caoporn国产精品| 91精品久久久久久久99蜜桃| 久久久久久久免费视频了| 椎名由奈av一区二区三区| 日韩精品乱码av一区二区| 国产激情一区二区三区| 欧美吻胸吃奶大尺度电影 | av亚洲精华国产精华精华| 欧美日韩精品一区二区三区四区| 精品福利视频一区二区三区| 亚洲欧美日韩人成在线播放| 首页欧美精品中文字幕| 色婷婷精品久久二区二区蜜臂av| 欧美一级欧美一级在线播放| 亚洲日本丝袜连裤袜办公室|