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

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

?? scribvw.cpp

?? 侯捷大師的《深入淺出MFC》的scribble源代碼
?? CPP
字號:
// ScribVw.cpp : implementation of the CScribbleView class
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1995 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

#include "stdafx.h"
#include "Scribble.h"

#include "ScribDoc.h"
#include "ScribVw.h"

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

/////////////////////////////////////////////////////////////////////////////
// CScribbleView

IMPLEMENT_DYNCREATE(CScribbleView, CView)

BEGIN_MESSAGE_MAP(CScribbleView, CView)
	//{{AFX_MSG_MAP(CScribbleView)
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_WM_MOUSEMOVE()
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CScribbleView construction/destruction

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

}

CScribbleView::~CScribbleView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CScribbleView drawing

void CScribbleView::OnDraw(CDC* pDC)
{
	CScribbleDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// The view delegates the drawing of individual strokes to
	// CStroke::DrawStroke().
	CTypedPtrList<CObList,CStroke*>& strokeList = pDoc->m_strokeList;
	POSITION pos = strokeList.GetHeadPosition();
	while (pos != NULL)
	{
		CStroke* pStroke = strokeList.GetNext(pos);
		pStroke->DrawStroke(pDC);
	}
}

/////////////////////////////////////////////////////////////////////////////
// CScribbleView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CScribbleView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CScribbleView message handlers

void CScribbleView::OnLButtonDown(UINT, CPoint point) 
{
    // Pressing the mouse button in the view window starts a new stroke

	m_pStrokeCur = GetDocument()->NewStroke();
	// Add first point to the new stroke
	m_pStrokeCur->m_pointArray.Add(point);

	SetCapture();       // Capture the mouse until button up.
	m_ptPrev = point;   // Serves as the MoveTo() anchor point for the
						// LineTo() the next point, as the user drags the
						// mouse.

	return;
}

void CScribbleView::OnLButtonUp(UINT, CPoint point) 
{
	// Mouse button up is interesting in the Scribble application
	// only if the user is currently drawing a new stroke by dragging
	// the captured mouse.

	if (GetCapture() != this)
		return; // If this window (view) didn't capture the mouse,
				// then the user isn't drawing in this window.

	CScribbleDoc* pDoc = GetDocument();

	CClientDC dc(this);

	CPen* pOldPen = dc.SelectObject(pDoc->GetCurrentPen());
	dc.MoveTo(m_ptPrev);
	dc.LineTo(point);
	dc.SelectObject(pOldPen);
	m_pStrokeCur->m_pointArray.Add(point);

	ReleaseCapture();   // Release the mouse capture established at
						// the beginning of the mouse drag.
	return;
}

void CScribbleView::OnMouseMove(UINT, CPoint point) 
{
	// Mouse movement is interesting in the Scribble application
	// only if the user is currently drawing a new stroke by dragging
	// the captured mouse.

	if (GetCapture() != this)
		return; // If this window (view) didn't capture the mouse,
				// then the user isn't drawing in this window.

	CClientDC dc(this);
	m_pStrokeCur->m_pointArray.Add(point);

	// Draw a line from the previous detected point in the mouse
	// drag to the current point.
	CPen* pOldPen = dc.SelectObject(GetDocument()->GetCurrentPen());
	dc.MoveTo(m_ptPrev);
	dc.LineTo(point);
	dc.SelectObject(pOldPen);
	m_ptPrev = point;
	return;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一色屋精品亚洲香蕉网站| 亚洲激情自拍偷拍| 蓝色福利精品导航| 欧美日韩国产综合视频在线观看 | 成人免费一区二区三区视频 | 亚洲第一成人在线| 欧美亚洲国产一区二区三区| 中文字幕在线免费不卡| 高清av一区二区| 欧美激情一区二区在线| 国产精品一区二区三区网站| 欧美不卡在线视频| 久久精品国产一区二区三| 精品国产网站在线观看| 紧缚捆绑精品一区二区| 精品国产1区2区3区| 韩国女主播一区| 久久婷婷一区二区三区| 国产一区二区网址| 国产三级精品三级| 成人av免费在线播放| 18欧美乱大交hd1984| 亚洲国产中文字幕在线视频综合| 93久久精品日日躁夜夜躁欧美| 国产精品不卡一区二区三区| 97se亚洲国产综合自在线| 亚洲欧美日韩国产另类专区| 色94色欧美sute亚洲13| 亚洲电影在线免费观看| 欧美一区二区三级| 国产中文字幕一区| 国产精品美女久久久久高潮| 97久久久精品综合88久久| 亚洲欧美国产三级| 欧美日韩一二区| 蜜臀va亚洲va欧美va天堂| 精品国产麻豆免费人成网站| 国产在线精品一区二区不卡了 | 午夜精品一区二区三区免费视频 | 欧美高清视频一二三区 | 99精品国产99久久久久久白柏| 亚洲人xxxx| 欧美军同video69gay| 麻豆精品视频在线| 国产午夜精品福利| 一本久久a久久精品亚洲| 亚洲午夜免费电影| 日韩欧美中文一区二区| 风流少妇一区二区| 亚洲一区二区影院| 精品日产卡一卡二卡麻豆| 顶级嫩模精品视频在线看| 亚洲美女在线国产| 日韩欧美一卡二卡| 波多野结衣在线一区| 欧美日韩成人激情| 国产精品99久久久久久似苏梦涵| 亚洲欧洲av一区二区三区久久| 欧美亚洲一区二区在线| 精品在线观看免费| 亚洲女人的天堂| 91精品福利在线一区二区三区| 国产精品亚洲视频| 亚洲综合视频在线观看| 精品乱码亚洲一区二区不卡| 97精品久久久久中文字幕| 日本美女一区二区三区视频| 国产精品色婷婷| 欧美疯狂做受xxxx富婆| 成人黄色在线看| 五月天丁香久久| 中文字幕第一区综合| 欧美性受xxxx黑人xyx| 国产一区在线观看麻豆| 亚洲成人精品在线观看| 日本一区二区三区免费乱视频| 在线这里只有精品| 国产精品美女久久久久久2018| 欧美电影一区二区| eeuss影院一区二区三区| 日精品一区二区三区| 一色屋精品亚洲香蕉网站| 欧美一区二区黄| 色综合色狠狠综合色| 国产美女主播视频一区| 亚洲国产综合色| 亚洲欧洲在线观看av| 欧美哺乳videos| 欧美视频一区二区| zzijzzij亚洲日本少妇熟睡| 免费一级欧美片在线观看| 一卡二卡三卡日韩欧美| 日本一区二区三区国色天香| 欧美一级黄色大片| 欧美亚洲综合在线| 9色porny自拍视频一区二区| 韩日精品视频一区| 天堂av在线一区| 亚洲综合色区另类av| 国产精品久久久爽爽爽麻豆色哟哟 | 日韩欧美一卡二卡| 欧美日韩在线精品一区二区三区激情| 成人手机电影网| 激情文学综合丁香| 日韩国产欧美一区二区三区| 一区二区在线电影| 18成人在线观看| 国产精品久久久久三级| 久久久久久久久岛国免费| 538在线一区二区精品国产| 一本高清dvd不卡在线观看| 成人午夜大片免费观看| 国产在线精品一区二区三区不卡| 日韩二区在线观看| 亚洲国产视频在线| 亚洲午夜精品在线| 亚洲精选在线视频| 亚洲少妇最新在线视频| 亚洲欧洲日韩女同| 中文字幕精品一区二区精品绿巨人| 亚洲欧美成人一区二区三区| 91香蕉视频mp4| 亚洲国产一区视频| 一级做a爱片久久| 亚洲少妇最新在线视频| 最新日韩在线视频| 国产精品不卡一区二区三区| 中文字幕成人网| 国产欧美日韩不卡| 成人午夜精品一区二区三区| 高清国产午夜精品久久久久久| 国产夫妻精品视频| 国产高清不卡二三区| 国产精品99久| 粉嫩久久99精品久久久久久夜| 国产91在线观看丝袜| 成人免费看片app下载| 粉嫩av一区二区三区| 成人性生交大合| 北条麻妃国产九九精品视频| av中文一区二区三区| 99re6这里只有精品视频在线观看| fc2成人免费人成在线观看播放| 99这里只有久久精品视频| 99久久精品免费看国产免费软件| 北条麻妃一区二区三区| 色综合久久久久综合体桃花网| 91麻豆swag| 欧美日韩精品一区二区三区蜜桃| 欧美高清视频不卡网| 精品女同一区二区| 国产欧美综合色| 成人免费一区二区三区视频 | 国产麻豆一精品一av一免费| 久久99精品国产91久久来源| 国内不卡的二区三区中文字幕| 国产一区二区三区不卡在线观看| 国产99精品视频| 97精品电影院| 欧美人与z0zoxxxx视频| 欧美一激情一区二区三区| 久久久久久毛片| 国产精品久久三| 亚洲一区二区高清| 美美哒免费高清在线观看视频一区二区 | 国产精品视频一二三| 亚洲人吸女人奶水| 亚洲成a人在线观看| 国产综合久久久久影院| 波多野结衣中文字幕一区二区三区| 91色porny在线视频| 欧美久久久影院| 国产偷国产偷精品高清尤物| 亚洲欧美日韩在线| 日本中文在线一区| 成人aaaa免费全部观看| 欧美丝袜第三区| 久久免费视频一区| 中文字幕亚洲在| 青娱乐精品视频| 最新不卡av在线| 午夜精品福利一区二区蜜股av| 紧缚奴在线一区二区三区| 91在线高清观看| 欧美一区二区三区视频在线 | 亚洲人亚洲人成电影网站色| 午夜精品久久一牛影视| 国产一区二区h| 欧美在线观看18| 欧美大胆人体bbbb| 亚洲欧美综合色| 蜜臀av国产精品久久久久| 成人av一区二区三区| 欧美狂野另类xxxxoooo| 中文字幕第一区第二区| 日本vs亚洲vs韩国一区三区| zzijzzij亚洲日本少妇熟睡| 欧美一级在线视频| 亚洲啪啪综合av一区二区三区| 图片区小说区区亚洲影院|