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

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

?? readerview.cpp

?? GB2BIG5是一個簡體和繁體中文雙向轉換程序。
?? CPP
字號:
// ReaderView.cpp : implementation of the CReaderView class
//

#include "stdafx.h"
#include "Reader.h"

#include "ReaderDoc.h"
#include "ReaderView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CReaderView

IMPLEMENT_DYNCREATE(CReaderView, CScrollView)

BEGIN_MESSAGE_MAP(CReaderView, CScrollView)
	//{{AFX_MSG_MAP(CReaderView)
	ON_WM_SETCURSOR()
	ON_WM_VSCROLL()
	ON_WM_SIZE()
	//}}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)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CReaderView construction/destruction

CReaderView::CReaderView()
{
	MARGIN=5;
	bSized=FALSE;
	nSizedPos=0;
}

CReaderView::~CReaderView()
{
}

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

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CReaderView drawing

void CReaderView::OnDraw(CDC* pDC)
{
	CReaderDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	DrawText(0,0);	
}


/////////////////////////////////////////////////////////////////////////////
// CReaderView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CReaderView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CReaderView message handlers

BOOL CReaderView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	if (nHitTest == HTCLIENT && pWnd == this) {
		::SetCursor(::LoadCursor(NULL, IDC_IBEAM));
		return TRUE;   
	}
		
	return CScrollView::OnSetCursor(pWnd, nHitTest, message);
}

void CReaderView::DrawText(int x,int y)
{
	//return if font has not yet been created;
	CReaderDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CClientDC dc(this);
	OnPrepareDC(&dc);
	if(!pDoc->GetTextLength())
		return;

	int LineHeight;
	TEXTMETRIC TM;
	int Y=0;



	//obtain text metrics;
	dc.GetTextMetrics(&TM);
	LineHeight=TM.tmHeight+TM.tmExternalLeading;

	//set test attributes;
	dc.SetBkMode(TRANSPARENT);
	
	//dispay text lines;
	for(int Line=0;Line<pDoc->GetLineNumber();Line++)
	{
		Y+=LineHeight;
		CString strTemp=pDoc->strLine[Line];
		dc.TextOut(x+MARGIN,Y-LineHeight,strTemp,strTemp.GetLength());
	}

}


void CReaderView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	CScrollView::OnUpdate(pSender,lHint,pHint);
	CReaderDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CClientDC dc(this);
	int LineWidth=0;
	CSize Size;
	TEXTMETRIC TM;
	dc.GetTextMetrics(&TM);	
	for(int Line=0;Line<pDoc->GetLineNumber();Line++)
	{
		Size=dc.GetTextExtent(pDoc->strLine[Line],pDoc->strLine[Line].GetLength());
		if(Size.cx>LineWidth)
			LineWidth=Size.cx;
	}
	Size.cx=LineWidth+MARGIN;
	Size.cy=(TM.tmHeight+TM.tmExternalLeading)*(pDoc->GetLineNumber()+1)+MARGIN;
	CSize step;
	step=sizeDefault;
	step.cy=(TM.tmHeight+TM.tmExternalLeading);
	
	SetScrollSizes(MM_TEXT,Size,sizeDefault,step);
}

void CReaderView::OnInitialUpdate() 
{

	CScrollView::OnInitialUpdate();
	
}

void CReaderView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	CReaderDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if(pDoc->GetLineNumber()<10)
	{
		CScrollView::OnVScroll(nSBCode, (int)nPos, pScrollBar);
		return;
	}
	CClientDC dc(this);
	OnPrepareDC(&dc);
	TEXTMETRIC TM;
	dc.GetTextMetrics(&TM);
	SCROLLINFO ScrollInfo;
	BOOL bGetInfo=GetScrollInfo(SB_VERT,&ScrollInfo,SIF_ALL);
	
	//如果僅僅在OnUpdate()函數中加入如下語句是不夠的:
	//SetScrollSizes(MM_TEXT,Size,sizeDefault,step);
	//當顯示小文本(本例中當行數<2048時)尚可;
	//當顯示大文本時,則僅僅顯示其中一部分。
	//最多可顯示2048行,原因何在?

	//仔細一查,發現原來是CWnd::OnVScroll的缺省
	//實現是16 bit 的。必須手工將其轉換到32 bit.
	//以下兩句代碼可解決:
	ScrollInfo.nMax=(TM.tmHeight+TM.tmExternalLeading)*(pDoc->GetLineNumber()+1)+MARGIN;
	if(bSized)
	{
	//對于大文本文檔,當前滾動位置>0x7fff時,
	//此時如果改變文檔尺寸(響應OnSize消息),
	//比如最大最小化窗口時,會發現當前滾動位置在文
	//檔尺寸變化前后不一致。即文檔尺寸變化后的當前
	//滾動位置總是小于0x7fff位。以下代碼用于解決此問題。
		ScrollInfo.nTrackPos=nSizedPos;
		ScrollInfo.nPos=nSizedPos;
		bSized=FALSE;
	}
	SetScrollInfo(SB_VERT,&ScrollInfo,SIF_ALL);

	//下面一行代碼也很重要,因為nTrackPos
	//返回SB_THUMBTRACK消息帶來的臨時位置
	//你可以不加,然后試一試拖動滾動條,
	//當向下拖過的位置大于0x7fff(32767)時
	//(顯然是大文件),此時發現UINT 的變量
	//nPos在作怪了!
	nPos=ScrollInfo.nTrackPos;

	//別忘了再強制轉換一下!
	CScrollView::OnVScroll(nSBCode, (int)nPos, pScrollBar);

 }

void CReaderView::OnSize(UINT nType, int cx, int cy) 
{
	nSizedPos=GetScrollPos(SB_VERT);
	bSized=TRUE;
	PostMessage(WM_VSCROLL);
	CScrollView::OnSize(nType, cx, cy);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满岳乱妇一区二区三区| 五月综合激情婷婷六月色窝| 中文字幕在线不卡国产视频| 日本伊人精品一区二区三区观看方式 | 中文字幕免费不卡| 日韩高清在线观看| 在线影院国内精品| 国产精品久久久久婷婷| 精品午夜一区二区三区在线观看| 日韩高清中文字幕一区| 美国一区二区三区在线播放| 色综合色综合色综合色综合色综合| 中文字幕在线一区免费| 精品在线播放午夜| 3atv一区二区三区| 亚洲黄色av一区| 97久久精品人人澡人人爽| 国产欧美一区二区在线| 国产在线视频一区二区三区| 这里是久久伊人| 亚洲第一成人在线| 欧美午夜理伦三级在线观看| 一区二区三区在线视频免费| 91亚洲精品久久久蜜桃| 国产精品久久久久影院老司| 成人综合在线观看| 国产欧美一区二区精品性| 国产精品一区二区三区乱码| 久久久五月婷婷| 黄色日韩网站视频| 久久久九九九九| 风间由美一区二区三区在线观看 | 26uuu亚洲综合色欧美| 日本视频中文字幕一区二区三区| 欧美日本免费一区二区三区| 午夜精品福利在线| 91精品免费在线| 九色综合狠狠综合久久| www精品美女久久久tv| 国产99一区视频免费| 国产无遮挡一区二区三区毛片日本| 国产精品一级在线| 国产偷国产偷亚洲高清人白洁| 国产成人在线视频网址| 国产精品美女久久久久aⅴ国产馆| 成人av在线一区二区三区| 亚洲乱码国产乱码精品精98午夜| 在线观看www91| 麻豆国产精品777777在线| 久久久久成人黄色影片| 91在线国产福利| 亚洲电影第三页| 亚洲精品成人a在线观看| 一本大道久久精品懂色aⅴ| 亚洲电影一区二区三区| 欧美一区二区三区视频免费播放| 久久66热re国产| 亚洲视频一二三区| 欧美一区二区三区四区五区| 国产精品一区二区在线看| 亚洲蜜桃精久久久久久久| 欧美日韩黄色一区二区| 国产一区999| 一区二区三区四区在线免费观看 | 欧美视频你懂的| 国内偷窥港台综合视频在线播放| 国产精品久久久久一区二区三区| 91久久精品一区二区三| 国内不卡的二区三区中文字幕 | 国产精品毛片无遮挡高清| 欧美在线一区二区| 国产高清不卡一区二区| 性做久久久久久久免费看| 欧美经典一区二区三区| 欧美色图免费看| 成人开心网精品视频| 日本视频中文字幕一区二区三区| 欧美mv和日韩mv国产网站| 中文字幕免费观看一区| 成人免费va视频| 久久精品国产久精国产爱| 国产精品成人网| 精品久久久影院| 欧美日韩国产精选| 91视频xxxx| 成人一区二区视频| 韩国欧美国产1区| 视频一区在线播放| 夜夜亚洲天天久久| 国产精品情趣视频| 久久综合九色综合欧美98 | 日韩一区二区精品葵司在线| 91亚洲精品一区二区乱码| 国产成人啪午夜精品网站男同| 舔着乳尖日韩一区| 亚洲一区二区成人在线观看| 亚洲视频一区二区在线观看| 国产欧美日韩精品一区| 精品88久久久久88久久久| 欧美高清视频不卡网| 国产精品理伦片| 欧美国产激情一区二区三区蜜月 | 亚洲色图都市小说| 国产精品理论在线观看| 国产亚洲制服色| 久久综合九色欧美综合狠狠| 欧美精品欧美精品系列| 欧美日韩精品免费观看视频| 99久免费精品视频在线观看 | 国产午夜亚洲精品午夜鲁丝片| 日韩欧美一二区| 欧美mv日韩mv| 精品美女在线观看| 日韩精品一区二区三区老鸭窝| 在线成人午夜影院| 欧美精品久久天天躁| 欧美精选在线播放| 欧美一卡二卡三卡四卡| 日韩午夜激情视频| 91精品国产91久久久久久一区二区| 欧美日韩免费在线视频| 欧美精品亚洲一区二区在线播放| 欧美老肥妇做.爰bbww视频| 91精品欧美福利在线观看| 日韩视频一区二区三区在线播放 | 婷婷六月综合网| 午夜视黄欧洲亚洲| 奇米影视一区二区三区小说| 秋霞午夜av一区二区三区| 久久精品国产色蜜蜜麻豆| 激情欧美日韩一区二区| 成人精品一区二区三区四区| jizzjizzjizz欧美| 欧亚洲嫩模精品一区三区| 欧美色图在线观看| 日韩欧美国产午夜精品| 中文字幕va一区二区三区| 亚洲另类色综合网站| 亚洲高清久久久| 韩国av一区二区三区四区| 成人av电影在线网| 欧美色综合天天久久综合精品| 精品欧美一区二区在线观看| 欧美激情一区二区三区不卡 | 国产精品丝袜黑色高跟| 亚洲一区二区视频在线| 精品一区二区三区免费| 91在线观看一区二区| 欧美一级在线视频| 国产精品久久网站| 日韩**一区毛片| 成人永久免费视频| 欧美精品日韩精品| 国产精品福利电影一区二区三区四区| 亚洲国产视频一区二区| 国产精品一级片| 欧美日韩视频在线观看一区二区三区| 欧美变态tickle挠乳网站| 国产精品灌醉下药二区| 奇米在线7777在线精品 | 亚洲国产色一区| 国产一区二区不卡| 欧美精三区欧美精三区| 免费高清不卡av| 在线观看国产精品网站| 国产精品日韩精品欧美在线| 美腿丝袜亚洲色图| 91久久精品国产91性色tv| 久久婷婷国产综合国色天香| 亚洲精品v日韩精品| 国产精品系列在线播放| 777a∨成人精品桃花网| 亚洲精品成人a在线观看| 粉嫩av一区二区三区| 日韩三级av在线播放| 夜夜嗨av一区二区三区中文字幕| 国产成人综合亚洲网站| 亚洲精品在线观看视频| 亚洲成a人片在线观看中文| 99久久国产综合精品女不卡| 国产视频一区在线播放| 免费在线观看一区| 欧美日韩国产综合一区二区三区| 亚洲欧美视频在线观看视频| 国产超碰在线一区| 26uuu另类欧美| 精品一二三四区| 日韩一级片网址| 久久精品国产亚洲一区二区三区| 69p69国产精品| 视频在线观看一区二区三区| 欧美中文字幕亚洲一区二区va在线| 国产精品国产自产拍高清av王其| 国v精品久久久网| 久久久精品欧美丰满| 国产一区二区福利视频| 2020国产成人综合网| 精品一区二区三区在线播放视频| 欧美精品一区二区久久久| 国产真实乱偷精品视频免|