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

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

?? effectshowview.cpp

?? 《精通 vc++ 圖像編程》的源代碼
?? CPP
字號:
// EffectShowView.cpp : implementation of the CEffectShowView class
//

#include "stdafx.h"
#include "EffectShow.h"
#include "MainFrm.h"
#include "Dib.h"

#include "EffectShowDoc.h"
#include "EffectShowView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CEffectShowView

IMPLEMENT_DYNCREATE(CEffectShowView, CScrollView)

BEGIN_MESSAGE_MAP(CEffectShowView, CScrollView)
	//{{AFX_MSG_MAP(CEffectShowView)
	ON_COMMAND(IDM_FADEIN, OnFadein)
	ON_UPDATE_COMMAND_UI(IDM_FADEIN, OnUpdateFadein)
	ON_COMMAND(IDM_HBLIND, OnHblind)
	ON_UPDATE_COMMAND_UI(IDM_HBLIND, OnUpdateHblind)
	ON_COMMAND(IDM_HCROSSMOVE, OnHcrossmove)
	ON_UPDATE_COMMAND_UI(IDM_HCROSSMOVE, OnUpdateHcrossmove)
	ON_COMMAND(IDM_HRASTER, OnHraster)
	ON_UPDATE_COMMAND_UI(IDM_HRASTER, OnUpdateHraster)
	ON_COMMAND(IDM_HSPLITMOVE, OnHsplitmove)
	ON_UPDATE_COMMAND_UI(IDM_HSPLITMOVE, OnUpdateHsplitmove)
	ON_COMMAND(IDM_HSPLITSCAN, OnHsplitscan)
	ON_UPDATE_COMMAND_UI(IDM_HSPLITSCAN, OnUpdateHsplitscan)
	ON_COMMAND(IDM_MOSAIC, OnMosaic)
	ON_UPDATE_COMMAND_UI(IDM_MOSAIC, OnUpdateMosaic)
	ON_COMMAND(IDM_MOVEDOWN, OnMovedown)
	ON_UPDATE_COMMAND_UI(IDM_MOVEDOWN, OnUpdateMovedown)
	ON_COMMAND(IDM_MOVELEFT, OnMoveleft)
	ON_UPDATE_COMMAND_UI(IDM_MOVELEFT, OnUpdateMoveleft)
	ON_COMMAND(IDM_MOVERIGHT, OnMoveright)
	ON_UPDATE_COMMAND_UI(IDM_MOVERIGHT, OnUpdateMoveright)
	ON_COMMAND(IDM_MOVEUP, OnMoveup)
	ON_UPDATE_COMMAND_UI(IDM_MOVEUP, OnUpdateMoveup)
	ON_COMMAND(IDM_SCANDOWN, OnScandown)
	ON_UPDATE_COMMAND_UI(IDM_SCANDOWN, OnUpdateScandown)
	ON_COMMAND(IDM_SCANLEFT, OnScanleft)
	ON_UPDATE_COMMAND_UI(IDM_SCANLEFT, OnUpdateScanleft)
	ON_COMMAND(IDM_SCANRIGHT, OnScanright)
	ON_UPDATE_COMMAND_UI(IDM_SCANRIGHT, OnUpdateScanright)
	ON_COMMAND(IDM_SCANUP, OnScanup)
	ON_UPDATE_COMMAND_UI(IDM_SCANUP, OnUpdateScanup)
	ON_COMMAND(IDM_VBLIND, OnVblind)
	ON_UPDATE_COMMAND_UI(IDM_VBLIND, OnUpdateVblind)
	ON_COMMAND(IDM_VCROSSMOVE, OnVcrossmove)
	ON_UPDATE_COMMAND_UI(IDM_VCROSSMOVE, OnUpdateVcrossmove)
	ON_COMMAND(IDM_VRASTER, OnVraster)
	ON_UPDATE_COMMAND_UI(IDM_VRASTER, OnUpdateVraster)
	ON_COMMAND(IDM_VSPLITMOVE, OnVsplitmove)
	ON_UPDATE_COMMAND_UI(IDM_VSPLITMOVE, OnUpdateVsplitmove)
	ON_COMMAND(IDM_VSPLITSCAN, OnVsplitscan)
	ON_UPDATE_COMMAND_UI(IDM_VSPLITSCAN, OnUpdateVsplitscan)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
	ON_MESSAGE(WM_REALIZEPAL, OnRealizePal)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEffectShowView construction/destruction

CEffectShowView::CEffectShowView()
{
	m_nEffect = -1;
}

CEffectShowView::~CEffectShowView()
{
}

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

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CEffectShowView drawing

void CEffectShowView::OnDraw(CDC* pDC)
{
	CEffectShowDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (! pDoc->m_pDib->IsEmpty())
		pDoc->m_pDib->Display(pDC, 0, 0);
}

void CEffectShowView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();
	CEffectShowDoc * pDoc = GetDocument();

	CSize sizeTotal(pDoc->m_pDib->GetWidth(), 
					pDoc->m_pDib->GetHeight());
	SetScrollSizes(MM_TEXT, sizeTotal);
	
	CMainFrame* pAppFrame = 
					(CMainFrame*) AfxGetApp()->m_pMainWnd;
	ASSERT_KINDOF(CMainFrame, pAppFrame);
	CRect rc;
	pAppFrame->GetClientRect(&rc);
	if (rc.Width() >= sizeTotal.cx && rc.Height() >= sizeTotal.cy &&
		(sizeTotal.cx>0 || sizeTotal.cy>0))
		ResizeParentToFit(FALSE);
}

/////////////////////////////////////////////////////////////////////////////
// CEffectShowView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CEffectShowView diagnostics

#ifdef _DEBUG
void CEffectShowView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CEffectShowView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CEffectShowView message handlers

LRESULT CEffectShowView::OnRealizePal(WPARAM wParam, LPARAM lParam)
{
	ASSERT(wParam != NULL);
	CEffectShowDoc* pDoc = GetDocument();

	if (pDoc->m_pDib->IsEmpty())
		return 0L;  // must be a new document

	CPalette* pPal = pDoc->m_pDib->GetPalette();
	if (pPal != NULL)
	{
		CWnd* pAppFrame = AfxGetApp()->m_pMainWnd;

		CClientDC appDC(pAppFrame);
		// All views but one should be a background palette.
		// wParam contains a handle to the active view, so the SelectPalette
		// bForceBackground flag is FALSE only if wParam == m_hWnd (this view)
		CPalette* oldPalette = appDC.SelectPalette(pPal, ((HWND)wParam) != m_hWnd);

		if (oldPalette != NULL)
		{
			UINT nColorsChanged = appDC.RealizePalette();
			if (nColorsChanged > 0)
				GetDocument()->UpdateAllViews(NULL);
			appDC.SelectPalette(oldPalette, TRUE);
		}
		else
		{
			TRACE0("\tSelectPalette failed!\n");
		}
	}

	return 0L;
}

void CEffectShowView::OnHblind() 
{
	m_nEffect = EFFECT_HBLIND;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateHblind(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnHcrossmove() 
{
	m_nEffect = EFFECT_HCROSSMOVE;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateHcrossmove(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnHraster() 
{
	m_nEffect = EFFECT_HRASTER;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateHraster(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnHsplitmove() 
{
	m_nEffect = EFFECT_HSPLITMOVE;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateHsplitmove(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnHsplitscan() 
{
	m_nEffect = EFFECT_HSPLITSCAN;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateHsplitscan(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnMosaic() 
{
	m_nEffect = EFFECT_MOSAIC;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateMosaic(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnMovedown() 
{
	m_nEffect = EFFECT_MOVEDOWN;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateMovedown(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnMoveleft() 
{
	m_nEffect = EFFECT_MOVELEFT;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateMoveleft(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnMoveright() 
{
	m_nEffect = EFFECT_MOVERIGHT;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateMoveright(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnMoveup() 
{
	m_nEffect = EFFECT_MOVEUP;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateMoveup(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnScandown() 
{
	m_nEffect = EFFECT_SCANDOWN;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateScandown(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnScanleft() 
{
	m_nEffect = EFFECT_SCANLEFT;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateScanleft(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnScanright() 
{
	m_nEffect = EFFECT_SCANRIGHT;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateScanright(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnScanup() 
{
	m_nEffect = EFFECT_SCANUP;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateScanup(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnVblind() 
{
	m_nEffect = EFFECT_VBLIND;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateVblind(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnVcrossmove() 
{
	m_nEffect = EFFECT_VCROSSMOVE;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateVcrossmove(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnVraster() 
{
	m_nEffect = EFFECT_VRASTER;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateVraster(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnVsplitmove() 
{
	m_nEffect = EFFECT_VSPLITMOVE;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateVsplitmove(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnUpdateVsplitscan(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::OnVsplitscan() 
{
	m_nEffect = EFFECT_VSPLITSCAN;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnFadein() 
{
	m_nEffect = EFFECT_FADE;
	EffectDisplay(m_nEffect);
}

void CEffectShowView::OnUpdateFadein(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(! GetDocument()->m_pDib->IsEmpty());
}

void CEffectShowView::EffectDisplay(int nEffect) 
{
	CEffectShowDoc* pDoc = GetDocument();
	CClientDC dc(this);
	CPoint pt = GetScrollPosition();

	if (nEffect==EFFECT_FADE)
	{
		pDoc->m_pDib->Clear(nEffect, &dc, -pt.x, -pt.y, 16, 50);
		pDoc->m_pDib->Display(nEffect, &dc, -pt.x, -pt.y, 16, 50);
	}
	else if (nEffect==EFFECT_HBLIND || nEffect==EFFECT_VBLIND)
	{
		pDoc->m_pDib->Clear(nEffect, &dc, -pt.x, -pt.y, 8, 70);
		pDoc->m_pDib->Display(nEffect, &dc, -pt.x, -pt.y, 8, 70);
	}
	else if (nEffect==EFFECT_HRASTER || nEffect==EFFECT_VRASTER || nEffect==EFFECT_MOSAIC)
	{
		pDoc->m_pDib->Clear(nEffect, &dc, -pt.x, -pt.y, 32, 1);
		pDoc->m_pDib->Display(nEffect, &dc, -pt.x, -pt.y, 32, 1);
	}
	else
	{
		pDoc->m_pDib->Clear(nEffect, &dc, -pt.x, -pt.y, 1, 5);
		pDoc->m_pDib->Display(nEffect, &dc, -pt.x, -pt.y, 1, 5);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区在线观看视频| www.日韩大片| 亚洲一区二区五区| 国产精品国产三级国产aⅴ入口| 精品电影一区二区三区| 久久综合狠狠综合久久综合88| 日韩你懂的在线观看| 欧美成人精品高清在线播放| 欧美精品一区二区蜜臀亚洲| 欧美精品一区二区久久婷婷| 久久精品这里都是精品| 欧美国产成人精品| 亚洲视频免费看| 亚洲综合色婷婷| 日韩综合小视频| 久久99国产精品成人| 国产在线国偷精品产拍免费yy| 韩国成人精品a∨在线观看| 国产一区二区三区香蕉| 成人在线视频首页| 91美女精品福利| 欧美日韩国产首页| 日韩免费观看高清完整版| 精品国产免费一区二区三区香蕉| 久久久久国产精品人| 亚洲国产经典视频| 樱花草国产18久久久久| 亚洲超碰精品一区二区| 久久成人综合网| 成人免费高清在线| 色先锋资源久久综合| 欧美色成人综合| 日韩精品最新网址| 国产精品卡一卡二| 91丨porny丨国产| 欧美日韩黄视频| 久久久91精品国产一区二区精品| 国产精品久久夜| 日韩激情在线观看| 国产成人在线色| 欧美午夜不卡在线观看免费| 日韩美女一区二区三区四区| 国产精品人妖ts系列视频| 亚洲午夜电影网| 国模冰冰炮一区二区| 91麻豆国产香蕉久久精品| 欧美精品视频www在线观看| 久久看人人爽人人| 亚洲精品国产精华液| 久久国产婷婷国产香蕉| 91丝袜美女网| 精品久久人人做人人爱| 亚洲欧美偷拍另类a∨色屁股| 免费的成人av| 一本到三区不卡视频| 欧美一级免费观看| 亚洲欧洲精品成人久久奇米网| 秋霞电影一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美一区二区日韩| 亚洲人妖av一区二区| 国内久久精品视频| 欧美制服丝袜第一页| 国产日韩视频一区二区三区| 日韩国产欧美三级| 92精品国产成人观看免费 | 欧美日韩一区二区在线观看 | 欧美色男人天堂| 国产午夜精品一区二区| 亚洲va天堂va国产va久| proumb性欧美在线观看| 精品国产污污免费网站入口| 亚洲一二三四区| 成人av影院在线| 精品国偷自产国产一区| 亚洲成人激情自拍| 91小视频在线| 国产欧美视频一区二区| 日韩av一区二区在线影视| 91久久人澡人人添人人爽欧美| 美腿丝袜在线亚洲一区| 91福利精品视频| 国产精品久久久久一区| 国产乱人伦精品一区二区在线观看 | 欧美福利电影网| 亚洲精品日韩综合观看成人91| 国产a久久麻豆| 欧美va在线播放| 日韩不卡一二三区| 欧美日韩视频专区在线播放| 亚洲免费观看高清完整| 91在线观看免费视频| 国产精品看片你懂得| 成人自拍视频在线观看| 久久久久久久久一| 国产福利一区二区三区| 久久久av毛片精品| 国产中文字幕精品| 亚洲精品在线一区二区| 毛片av一区二区三区| 欧美一区二区视频观看视频| 亚洲777理论| 欧美日韩免费在线视频| 亚洲一区二区三区四区在线| 欧美天天综合网| 午夜精品在线视频一区| 69堂国产成人免费视频| 日韩精彩视频在线观看| 欧美顶级少妇做爰| 免费人成精品欧美精品| 精品久久久久久久人人人人传媒| 久久疯狂做爰流白浆xx| 久久久久9999亚洲精品| 成人黄色国产精品网站大全在线免费观看 | 色综合 综合色| 伊人婷婷欧美激情| 日韩天堂在线观看| 91在线视频官网| 国产1区2区3区精品美女| 欧美日韩视频不卡| 亚洲一区二区精品久久av| 成人国产精品免费| 色婷婷亚洲综合| 色综合久久综合| 日本高清视频一区二区| 97久久精品人人爽人人爽蜜臀| 国产一区二区三区观看| 欧美精品日韩一本| 国产欧美日韩在线看| 亚洲欧洲性图库| 久久无码av三级| 色一区在线观看| 精品系列免费在线观看| 亚洲免费观看在线观看| 久久精品视频在线看| 欧美精品免费视频| 欧美精品123区| 欧美日韩电影一区| 日韩一级片网站| 久久综合久久综合亚洲| 在线观看成人小视频| 久久久亚洲午夜电影| 久久精品在线免费观看| 欧美国产成人精品| 视频一区免费在线观看| 国产伦精一区二区三区| 在线一区二区三区四区| 国产精品久久久久影院老司| 久久久精品国产免大香伊| 国产婷婷一区二区| 亚洲猫色日本管| 男人的天堂久久精品| 免费看欧美美女黄的网站| 美女看a上一区| 国产成人综合在线播放| 成人免费高清视频| 欧美区视频在线观看| 国产欧美一区视频| 久久五月婷婷丁香社区| 亚洲丝袜精品丝袜在线| 视频一区在线播放| 激情亚洲综合在线| 国产一区二区三区四区五区入口| 精品一二三四区| 高清免费成人av| 欧美在线观看一区| 欧美嫩在线观看| 欧美一区二区三区在线| 777午夜精品视频在线播放| 欧美一级专区免费大片| 亚洲精品视频一区| av在线不卡观看免费观看| 欧美日韩国产综合一区二区三区 | 国产精品麻豆欧美日韩ww| 亚洲一级二级在线| 久久久久久久久伊人| 国产精品久久久久影院老司| 激情久久久久久久久久久久久久久久| 91精选在线观看| 毛片av一区二区| 欧美精品丝袜中出| 国产一区二区三区国产| 欧美国产成人在线| 日韩精品一区二区三区在线观看 | 日韩一区二区电影网| 色狠狠一区二区| 岛国精品一区二区| 精品在线视频一区| 视频在线观看91| 亚洲国产日韩一级| 亚洲伦理在线免费看| 国产精品久久久久久久久免费樱桃 | 欧日韩精品视频| jlzzjlzz欧美大全| 国产精品99久| 国产一区二区0| 精品一区二区三区免费观看| 日韩电影在线免费观看| 亚洲一区在线观看视频| 亚洲精品国产视频|