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

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

?? mdicopybitmapview.cpp

?? 深入學習VC++得很難得的一本好書 里面配有大量的源代碼 并有詳細的解釋
?? CPP
字號:
// MDICopyBitmapView.cpp : implementation of the CMDICopyBitmapView class
//

#include "stdafx.h"
#include "MDICopyBitmap.h"
#include "MDICopyBitmapDoc.h"
#include "MDICopyBitmapView.h"
#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMDICopyBitmapView

IMPLEMENT_DYNCREATE(CMDICopyBitmapView, CScrollView)

BEGIN_MESSAGE_MAP(CMDICopyBitmapView, CScrollView)
	//{{AFX_MSG_MAP(CMDICopyBitmapView)
	ON_MESSAGE(WM_REALIZEPAL, OnRealizePal)
	ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
	ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
	ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy)
	ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CMDICopyBitmapView construction/destruction

CMDICopyBitmapView::CMDICopyBitmapView()
{
	// TODO: add construction code here

}

CMDICopyBitmapView::~CMDICopyBitmapView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMDICopyBitmapView drawing

void CMDICopyBitmapView::OnDraw(CDC* pDC)
{
	CMDICopyBitmapDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here

	HDIB hDIB = pDoc->GetHDIB();
	if (hDIB != NULL)
	{
		LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);
		int cxDIB = (int) ::DIBWidth(lpDIB);         // Size of DIB - x
		int cyDIB = (int) ::DIBHeight(lpDIB);        // Size of DIB - y
		::GlobalUnlock((HGLOBAL) hDIB);
		CRect rcDIB;
		rcDIB.top = rcDIB.left = 0;
		rcDIB.right = cxDIB;
		rcDIB.bottom = cyDIB;
		CRect rcDest;
		if (pDC->IsPrinting())   // printer DC
		{
			// get size of printer page (in pixels)
			int cxPage = pDC->GetDeviceCaps(HORZRES);
			int cyPage = pDC->GetDeviceCaps(VERTRES);
			// get printer pixels per inch
			int cxInch = pDC->GetDeviceCaps(LOGPIXELSX);
			int cyInch = pDC->GetDeviceCaps(LOGPIXELSY);

			rcDest.top = rcDest.left = 0;
			rcDest.bottom = (int)(((double)cyDIB * cxPage * cyInch)
					/ ((double)cxDIB * cxInch));
			rcDest.right = cxPage;
		}
		else   // not printer DC
		{
			rcDest = rcDIB;
		}
		::PaintDIB(pDC->m_hDC, &rcDest, pDoc->GetHDIB(),
			&rcDIB, pDoc->GetDocPalette());
	}

	pDC->SetBkColor(RGB(0,255,0));
	pDC->TextOut(0, 
		         0, 
				 _T("使用說明:打開一個圖像,使用“編輯”菜單中的“復制”和“粘貼”對圖像進行操作!"));
}


/////////////////////////////////////////////////////////////////////////////
// CMDICopyBitmapView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CMDICopyBitmapView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CMDICopyBitmapView message handlers

void CMDICopyBitmapView::OnInitialUpdate() 
{
	CScrollView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	CSize sizeTotal;
	sizeTotal.cx = sizeTotal.cy = 3000;
	CSize sizeLine = CSize(sizeTotal.cx / 5,sizeTotal.cy / 5);
	SetScrollSizes(MM_TEXT, sizeLine,sizeTotal,sizeTotal);	
}

LRESULT CMDICopyBitmapView::OnRealizePal (WPARAM wParam,LPARAM lParam)
{
	ASSERT(wParam != NULL);
	CMDICopyBitmapDoc* pDoc = GetDocument();
	if (pDoc->GetHDIB() == NULL)
		return 0L;  // must be a new document必須是一個新的文檔
	CPalette* pPal = pDoc->GetDocPalette();
	if (pPal != NULL)
	{
		CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
		ASSERT_KINDOF(CMainFrame, pAppFrame);
	
		CClientDC appDC(pAppFrame);
		CPalette* oldPalette = appDC.SelectPalette(pPal, ((HWND)wParam) != m_hWnd);
		if (oldPalette != NULL)
		{
			UINT nColorsChanged = appDC.RealizePalette();
			if (nColorsChanged > 0)
				pDoc->UpdateAllViews(NULL);
			appDC.SelectPalette(oldPalette, TRUE);
		}
		else
		{
			TRACE0("\tSelectPalette failed in CMDICopyBitmapView::OnPaletteChanged\n");
		}
	}

		return 0L;
}

void CMDICopyBitmapView::OnEditCopy() 
{
	// TODO: Add your command handler code here
	CMDICopyBitmapDoc* pDoc = GetDocument();

	// 清除剪切板的內容,拷貝DIB。
	if (OpenClipboard())
	{
		BeginWaitCursor();
		EmptyClipboard();
		SetClipboardData (CF_DIB, CopyHandle((HANDLE) pDoc->GetHDIB()) );
		CloseClipboard();
		EndWaitCursor();
	}
}

void CMDICopyBitmapView::OnUpdateEditCopy(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(GetDocument()->GetHDIB() != NULL);
}

void CMDICopyBitmapView::OnUpdateEditPaste(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable(::IsClipboardFormatAvailable(CF_DIB));
}

void CMDICopyBitmapView::OnEditPaste() 
{
	// TODO: Add your command handler code here
	HDIB hNewDIB = NULL;

	if (OpenClipboard())
	{
		BeginWaitCursor();
		hNewDIB = (HDIB) CopyHandle(::GetClipboardData(CF_DIB));
		CloseClipboard();
		if (hNewDIB != NULL)
		{
			CMDICopyBitmapDoc* pDoc = GetDocument();
			pDoc->ReplaceHDIB(hNewDIB); // 釋放舊的DIB
			pDoc->InitDIBData();    // 建立新的調色板及尺寸
			pDoc->SetModifiedFlag(TRUE);

			SetScrollSizes(MM_TEXT, pDoc->GetDocSize());
			OnRealizePal((WPARAM)m_hWnd,0);  // 實現新的調色板
			pDoc->UpdateAllViews(NULL);
		}

		EndWaitCursor();
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩另类国产亚洲欧美一级| 91在线精品秘密一区二区| 亚洲少妇最新在线视频| 国产欧美一区二区三区在线看蜜臀| 日韩一级欧美一级| 日韩女优av电影在线观看| 欧美大尺度电影在线| 日韩欧美一二区| 亚洲精品一区二区在线观看| 精品国产乱码久久| 久久久蜜臀国产一区二区| 欧美高清在线精品一区| 成人欧美一区二区三区视频网页 | 91 com成人网| 欧美伦理影视网| 日韩一卡二卡三卡四卡| 国产拍揄自揄精品视频麻豆| 中文字幕电影一区| 亚洲最大色网站| 蜜臀av一区二区在线免费观看| 美女脱光内衣内裤视频久久网站 | 亚洲免费观看视频| 亚洲一二三四区| 蜜芽一区二区三区| 国产+成+人+亚洲欧洲自线| 99久久精品一区| 欧美日韩国产高清一区二区| 欧美大黄免费观看| 亚洲日本va午夜在线电影| 亚洲一二三四久久| 国产精品亚洲第一| 色噜噜狠狠一区二区三区果冻| 欧美一区二区久久| 国产精品国产三级国产专播品爱网| 有坂深雪av一区二区精品| 久久精品72免费观看| 99久久免费国产| 欧美日韩国产精品自在自线| 国产喂奶挤奶一区二区三区| 亚洲午夜在线观看视频在线| 国产在线精品一区二区三区不卡 | 中文字幕第一区| 偷拍一区二区三区四区| 成人中文字幕合集| 日韩一区二区免费电影| 国产精品视频你懂的| 日韩精品久久理论片| 91免费视频网址| 久久精品人人爽人人爽| 日韩中文字幕1| 99久久婷婷国产综合精品 | 欧美激情一二三区| 毛片av一区二区| 欧美又粗又大又爽| 国产精品视频免费| 狠狠色综合色综合网络| 欧美肥胖老妇做爰| 亚洲综合在线视频| 不卡欧美aaaaa| 欧美激情一区不卡| 国产精品2024| 久久伊人蜜桃av一区二区| 青青草精品视频| 欧美日韩mp4| 亚洲一区二区黄色| 欧美揉bbbbb揉bbbbb| 综合久久久久综合| 成人免费高清在线观看| 国产色综合久久| 国产黄色精品视频| 国产欧美一区二区精品性色超碰| 美女诱惑一区二区| 日韩精品一区二区三区在线播放| 丝袜诱惑制服诱惑色一区在线观看| 91国模大尺度私拍在线视频| 亚洲欧美一区二区三区久本道91| caoporen国产精品视频| 国产精品久久久久影院亚瑟| fc2成人免费人成在线观看播放 | 国产精品国产馆在线真实露脸| 国产在线精品国自产拍免费| xf在线a精品一区二区视频网站| 美日韩黄色大片| 久久亚洲二区三区| 国产福利不卡视频| 国产精品麻豆久久久| 菠萝蜜视频在线观看一区| 成人欧美一区二区三区在线播放| 色老综合老女人久久久| 婷婷激情综合网| 精品国产123| 成人性生交大合| 亚洲精品国久久99热| 777亚洲妇女| 国产在线看一区| 亚洲男人天堂一区| 欧美日韩一级片网站| 久久国产精品99精品国产 | 欧美一区二区三区四区久久| 久久国产麻豆精品| 国产精品区一区二区三区| 91国产精品成人| 看片网站欧美日韩| 国产精品久久久久久妇女6080| 在线免费观看视频一区| 黄色日韩网站视频| 亚洲与欧洲av电影| 2017欧美狠狠色| 91国产精品成人| 六月婷婷色综合| 一区二区三区在线视频观看| 欧美成人在线直播| 色噜噜久久综合| 国产91丝袜在线播放九色| 亚洲午夜精品一区二区三区他趣| 欧美精品一区二区久久久| 91国产免费看| 国产91精品入口| 免费看欧美女人艹b| 最新日韩在线视频| 精品福利视频一区二区三区| 欧美日韩精品三区| 国产白丝网站精品污在线入口| 亚洲无人区一区| 国产精品午夜在线| 精品国精品国产尤物美女| 色又黄又爽网站www久久| 国内精品国产三级国产a久久| 亚洲五月六月丁香激情| 亚洲色图在线播放| 久久久不卡影院| 日韩视频在线你懂得| 在线亚洲高清视频| 91视频www| 丁香婷婷综合激情五月色| 另类中文字幕网| 日韩高清不卡在线| 亚洲午夜久久久久久久久电影网| 综合久久一区二区三区| 国产精品视频观看| 久久精品无码一区二区三区| 欧美一区二区三区性视频| 欧美三级欧美一级| 欧美亚洲国产bt| 色综合色狠狠综合色| 99久久99久久精品免费看蜜桃| 国产成人一级电影| 国产999精品久久久久久| 国产乱码精品一区二区三 | 97aⅴ精品视频一二三区| 成人网页在线观看| 国产成人综合亚洲91猫咪| 乱一区二区av| 国产乱妇无码大片在线观看| 黄网站免费久久| 国产丶欧美丶日本不卡视频| 国产一区二区三区黄视频| 国产在线一区观看| 国产成人av福利| 粉嫩欧美一区二区三区高清影视| 国产精品一区二区三区网站| 国产精品夜夜嗨| 成人福利视频在线| 日本乱人伦aⅴ精品| 91国偷自产一区二区开放时间| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 青青青伊人色综合久久| 久久电影网站中文字幕 | 日本一区二区成人在线| 国产精品国模大尺度视频| 亚洲三级在线播放| 亚洲成人免费在线观看| 日本不卡中文字幕| 国产成人在线观看免费网站| 99久久99久久综合| 欧美久久婷婷综合色| 欧美精品一区二区三区四区| 欧美激情在线观看视频免费| 亚洲免费观看视频| 日本午夜精品视频在线观看 | 9i看片成人免费高清| 欧美三级日韩三级国产三级| 亚洲精品一区二区精华| 国产精品麻豆一区二区| 亚洲小少妇裸体bbw| 国产酒店精品激情| 色婷婷久久久亚洲一区二区三区| 欧美三级日韩在线| 国产日韩av一区| 天天综合网 天天综合色| 国产成人小视频| 欧美老肥妇做.爰bbww| 国产日韩欧美不卡| 亚洲动漫第一页| 成人午夜看片网址| 欧美一区二区啪啪| 一区二区三区鲁丝不卡| 国产成人精品一区二区三区四区| 欧美一a一片一级一片| 国产夜色精品一区二区av|