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

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

?? textview.cpp

?? c++的一些源代碼
?? CPP
字號:
// TextView.cpp : implementation of the CTextView class
//

#include "stdafx.h"
#include "Text.h"

#include "TextDoc.h"
#include "TextView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTextView

IMPLEMENT_DYNCREATE(CTextView, CView)

BEGIN_MESSAGE_MAP(CTextView, CView)
	//{{AFX_MSG_MAP(CTextView)
	ON_WM_HSCROLL()
	ON_WM_VSCROLL()
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CTextView construction/destruction

CTextView::CTextView()
{
	m_nFirstVisible = 0;
	m_Font.CreatePointFont (100, "Courier New");
}

CTextView::~CTextView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CTextView drawing

void CTextView::OnDraw(CDC* pDC)
{
	CTextDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	int nLine;
	int nCount = pDoc->m_Text.GetSize ();
	if (!nCount)
		return;
	CLine clLine;
	CSize sz = pDC->GetTextExtent (" ", 1);
	RECT rc;
	GetClientRect (&rc);
	int nBottom = rc.bottom;
	rc.bottom = sz.cy;
	CFont *fontOld = pDC->SelectObject (&m_Font);
	for (nLine = 0; nLine < nCount; ++nLine)
	{
		clLine = pDoc->m_Text[nLine];
		pDC->DrawText (clLine.GetData(), &rc, DT_EXPANDTABS | DT_SINGLELINE | DT_LEFT);
		rc.top += sz.cy;
		rc.bottom += sz.cy;
//
//	If we're out of the window viewport, might
//	as well bail out.
		if (rc.top > nBottom)
			break;
	}
	pDC->SelectObject (fontOld);
}

/////////////////////////////////////////////////////////////////////////////
// CTextView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CTextView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CTextView message handlers

void CTextView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	RECT	rClip;
	GetClientRect (&rClip);
	switch (nSBCode)
	{
		case SB_BOTTOM:			//	Scrolls to the lower right.
		case SB_ENDSCROLL:		//	Ends scroll.
			return;
		case SB_LINEDOWN:		//	Scrolls one line down.
			++m_siHorz.nPos;
			if (m_siHorz.nPos > m_siHorz.nMax)
				m_siHorz.nPos = m_siHorz.nMax;
			else
				ScrollWindowEx (-1, 0, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
			break;
		case SB_LINEUP:			//	Scrolls one line up.
			--m_siHorz.nPos;
			if (m_siHorz.nPos < 0)
				m_siHorz.nPos = 0;
			else
				ScrollWindowEx (1, 0, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
			break;
		case SB_PAGEDOWN:		//	Scrolls one page left.
			if (m_siHorz.nPos >= m_siHorz.nMax)
				return;
			ScrollWindowEx (-((int) m_siHorz.nPage / 2), 0, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
			m_siHorz.nPos += m_siHorz.nPage / 2;
			if (m_siHorz.nPos > m_siHorz.nMax)
				m_siHorz.nPos = m_siHorz.nMax;
			break;
		case SB_PAGEUP:			//	Scrolls one page up.
			if (m_siHorz.nPos == 0)
				return;
			ScrollWindowEx (m_siHorz.nPage / 2, 0, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
			m_siHorz.nPos -= m_siHorz.nPage / 2;
			if (m_siHorz.nPos < 0)
				m_siHorz.nPos = 0;
			break;
		case SB_THUMBPOSITION:	//	The user has dragged the scroll box (thumb) and released the mouse button. The nPos parameter indicates the position of the scroll box at the end of the drag operation.
		case SB_THUMBTRACK:		//	The user is dragging the scroll box. This message is sent repeatedly until the user releases the mouse button. The nPos parameter indicates the position that the scroll box has been dragged to.
			ScrollWindowEx (m_siHorz.nPos - nPos, 0, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
			m_siHorz.nPos = nPos;// HIWORD(wParam);
			break;
		case SB_TOP:				//	Scrolls to the upper left.
			return;
			break;
	}
	SetScrollInfo (SB_HORZ, &m_siHorz, true);
}

void CTextView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	RECT	rClip;
	GetClientRect (&rClip);
	switch (nSBCode)
	{
	int		Pos, Scroll;
		case SB_BOTTOM:			//	Scrolls to the lower right.
		case SB_ENDSCROLL:		//	Ends scroll.
			return;
		case SB_LINEDOWN:		//	Scrolls one line down.
			ScrollWindowEx (0, -m_nTextHigh, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
//			m_siVert.nPos += 1;
			m_siVert.nPos += m_nTextHigh;
			m_siVert.nTrackPos += m_nTextHigh;
			if (m_siVert.nPos > m_siVert.nMax)
				m_siVert.nPos = m_siVert.nMax;
//			if (m_nFirstVisible)
				++m_nFirstVisible;
			break;
		case SB_LINEUP:			//	Scrolls one line up.
			ScrollWindowEx (0, 1, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
			if (m_siVert.nPos == 0)
				return;
			m_siVert.nPos -= 1;
			if (m_siVert.nPos < 0)
				m_siVert.nPos = 0;
			++m_nFirstVisible;
			break;
		case SB_PAGEDOWN:		//	Scrolls one page down.
			if (m_siVert.nPos >= m_siVert.nMax)
				return;
			Pos = m_siVert.nPos;
			m_siVert.nPos += m_siVert.nPage / 2;
			if (m_siVert.nPos > m_siVert.nMax)
			{
				Scroll = 0;
				m_siVert.nPos = m_siVert.nMax;
			}
			else
				Scroll = m_siVert.nPage / 2;
			ScrollWindowEx (0, -((int) m_siVert.nPage / 2), NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
//			m_Stop = true;
			m_nFirstVisible += 10;
			break;
		case SB_PAGEUP:			//	Scrolls one page up.
			if (m_siVert.nPos == 0)
				return;
			Pos = m_siVert.nPos;
			m_siVert.nPos -= m_siVert.nPage / 2;
			if (m_siVert.nPos < 0)
			{
				Scroll = 0;
				m_siVert.nPos = 0;
			}
			else
				Scroll = m_siVert.nPage / 2;
			ScrollWindowEx (0, m_siVert.nPage / 2, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
//			m_Stop = true;
			m_nFirstVisible -= 10;
			if (m_nFirstVisible < 0)
				m_nFirstVisible = 0;
			break;
		case SB_THUMBPOSITION:	//	The user has dragged the scroll box (thumb) and released the mouse button. The nPos parameter indicates the position of the scroll box at the end of the drag operation.
		case SB_THUMBTRACK:		//	The user is dragging the scroll box. This message is sent repeatedly until the user releases the mouse button. The nPos parameter indicates the position that the scroll box has been dragged to.
			ScrollWindowEx (0, m_siVert.nPos - nPos, NULL, &rClip, NULL, NULL, SW_ERASE | SW_INVALIDATE);
			m_siVert.nPos = nPos;
			break;
		case SB_TOP:				//	Scrolls to the upper left.
			return;
	}
	SetScrollInfo (SB_VERT, &m_siVert, true);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区福利| 蜜桃av噜噜一区二区三区小说| 色噜噜狠狠色综合中国| 日本欧美在线观看| 精品免费视频.| 91色在线porny| 性感美女极品91精品| 7777精品伊人久久久大香线蕉经典版下载| 久久精品久久99精品久久| 国产精品亲子乱子伦xxxx裸| 欧美精品在线观看播放| 国产.精品.日韩.另类.中文.在线.播放| 亚洲激情在线播放| 久久久高清一区二区三区| 精品视频1区2区3区| 国产成人在线视频网址| 一区二区不卡在线视频 午夜欧美不卡在| 欧美日韩一级黄| 成人在线视频一区| 久久精品国产99国产| 亚洲精品少妇30p| 国产日韩欧美制服另类| 欧美精品色综合| 99精品视频在线免费观看| 久久精品国产澳门| 午夜不卡在线视频| 亚洲免费资源在线播放| 欧美国产日本韩| 日韩女优av电影| 不卡电影免费在线播放一区| 蜜芽一区二区三区| 亚洲一区二区四区蜜桃| 1024国产精品| 久久久久88色偷偷免费| 欧美本精品男人aⅴ天堂| 欧美日韩一级片在线观看| www.在线欧美| 国产乱码精品一品二品| 亚洲成人免费观看| 亚洲欧美日韩中文字幕一区二区三区 | 国产最新精品免费| 日本成人超碰在线观看| 日日夜夜精品视频免费| 洋洋成人永久网站入口| 久久精品亚洲一区二区三区浴池| 欧美日韩国产影片| 欧美偷拍一区二区| 色视频一区二区| 99久久精品情趣| 成人毛片在线观看| 国产成人av一区二区三区在线观看| 久久激情五月婷婷| 美女网站色91| 日本大胆欧美人术艺术动态 | 日本一区二区三区高清不卡| 欧美精品一区二区高清在线观看| 91精品国产aⅴ一区二区| 欧美猛男男办公室激情| 在线不卡免费av| 欧美一级日韩一级| 91麻豆精品国产91久久久久| 欧美精品一级二级三级| 91精品久久久久久蜜臀| 欧美成人女星排行榜| 91麻豆精品国产91| 8v天堂国产在线一区二区| 欧美精品久久久久久久多人混战| 国产亚洲精品中文字幕| 久久老女人爱爱| 国产精品久线在线观看| 国产欧美一区二区三区鸳鸯浴 | 白白色 亚洲乱淫| 99精品视频在线观看免费| 欧美在线不卡一区| 在线电影院国产精品| 精品毛片乱码1区2区3区| 久久久久成人黄色影片| 国产精品久久久久久户外露出 | 亚洲尤物视频在线| 亚洲欧美色综合| 天堂久久久久va久久久久| 免费在线观看日韩欧美| 国产成人av福利| 色视频成人在线观看免| 777精品伊人久久久久大香线蕉| 精品久久久影院| 国产精品麻豆99久久久久久| 国产精品色眯眯| 亚洲福利视频一区二区| 在线区一区二视频| 26uuu精品一区二区三区四区在线| 日本一区二区三级电影在线观看| 在线视频中文字幕一区二区| 欧美日高清视频| 久久日韩粉嫩一区二区三区| 国产精品色婷婷| 日本中文在线一区| 国产福利精品一区二区| 欧美性极品少妇| 日本一区二区三级电影在线观看| 综合中文字幕亚洲| 国产精品国产成人国产三级| 亚洲天天做日日做天天谢日日欢 | 亚洲三级在线看| 五月婷婷另类国产| 丰满少妇久久久久久久| 91国模大尺度私拍在线视频| 日韩免费观看高清完整版| 国产精品久久久久久久久久免费看| 亚洲激情欧美激情| 精品在线观看视频| 欧美亚洲日本一区| 国产婷婷色一区二区三区| 亚洲一区二区三区四区在线观看 | 91精品国产免费| 国产视频一区不卡| 亚洲黄色免费网站| 欧美四级电影在线观看| 亚洲欧美综合色| 不卡的av中国片| 日韩欧美一卡二卡| 亚洲精品一线二线三线| 亚洲美女免费在线| 国产福利一区二区| 日韩一区二区三区免费观看| 国产精品网站在线播放| 国产一区二区三区黄视频 | 亚洲欧美一区二区三区极速播放| 久久99精品久久久| 欧美一区二区在线免费观看| 一区二区不卡在线视频 午夜欧美不卡在| 国产91在线观看丝袜| 日韩免费高清电影| 蜜臀av亚洲一区中文字幕| 69堂精品视频| 久久国产成人午夜av影院| 日韩欧美在线不卡| 天天综合网天天综合色| 欧美久久久久久久久久| 日韩av在线发布| 日韩三级视频在线看| 另类中文字幕网| 欧美一区午夜视频在线观看 | 最新高清无码专区| 国产黄色91视频| 国产精品色眯眯| 99国产精品国产精品久久| 中文字幕中文字幕一区| 91免费视频观看| 亚洲黄色性网站| 欧美日韩高清不卡| 日韩成人午夜电影| 欧美大片国产精品| 九九视频精品免费| 中文字幕+乱码+中文字幕一区| 国产99久久久国产精品潘金网站| 亚洲欧美一区二区在线观看| 在线观看www91| 蜜桃一区二区三区在线| 欧美激情在线观看视频免费| 91久久人澡人人添人人爽欧美| 天天综合天天综合色| 久久久久久一二三区| 99久久婷婷国产综合精品电影| 一区av在线播放| 精品三级在线看| 粉嫩蜜臀av国产精品网站| 一区二区在线免费| 欧美videossexotv100| 91香蕉视频在线| 亚洲人成在线播放网站岛国 | 91蜜桃免费观看视频| av在线这里只有精品| 日本一二三不卡| 精品无码三级在线观看视频| 国产精品国产自产拍高清av| 欧美日韩国产综合一区二区三区| 精品亚洲成a人| 亚洲美女在线一区| 日韩精品一区二区在线| 91在线小视频| 精品一区二区在线视频| 亚洲欧美日韩综合aⅴ视频| 欧美另类高清zo欧美| 国产69精品久久久久777| 久久99精品久久久久久国产越南 | 国产亚洲精品中文字幕| 在线免费观看不卡av| 国产高清久久久久| 亚洲一卡二卡三卡四卡五卡| 欧美精品一区二区三区蜜桃| 色偷偷成人一区二区三区91| 国产一区二区不卡在线| 五月天久久比比资源色| 国产精品久久三区| 日韩免费看网站| 99re这里只有精品视频首页| 国产一区二区成人久久免费影院| 亚洲国产精品久久艾草纯爱| 亚洲欧洲精品天堂一级|