⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readtxtview.cpp

📁 一个wince的TEXT阅读器源代码
💻 CPP
字号:
// ReadTxtView.cpp : implementation of the CReadTxtView class
//

#include "stdafx.h"
#include "ReadTxt.h"

#include "ReadTxtDoc.h"
#include "ReadTxtView.h"

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

#define WM_TTS_ATTRCHANGE	WM_USER + 0
#define WM_TTS_PROGRESS		WM_USER + 1

/////////////////////////////////////////////////////////////////////////////
// CReadTxtView

IMPLEMENT_DYNCREATE(CReadTxtView, CView)

BEGIN_MESSAGE_MAP(CReadTxtView, CView)
	//{{AFX_MSG_MAP(CReadTxtView)

	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/*	
		ON_COMMAND(ID_SYNTH_PLAY_ALL, OnSynthPlayAll)
		ON_UPDATE_COMMAND_UI(ID_SYNTH_PLAY_ALL, OnUpdateSynthPlayAll)
		ON_COMMAND(ID_SYNTH_PAUSE, OnSynthPause)
		ON_UPDATE_COMMAND_UI(ID_SYNTH_PAUSE, OnUpdateSynthPause)
		ON_COMMAND(ID_SYNTH_PLAY, OnSynthPlay)
		ON_UPDATE_COMMAND_UI(ID_SYNTH_PLAY, OnUpdateSynthPlay)
		ON_COMMAND(ID_SYNTH_STOP, OnSynthStop)
		ON_UPDATE_COMMAND_UI(ID_SYNTH_STOP, OnUpdateSynthStop)
		ON_MESSAGE(WM_TTS_ATTRCHANGE, OnSynthAttrChange)
		ON_MESSAGE(WM_TTS_PROGRESS, OnSynthProgress)
*/
/////////////////////////////////////////////////////////////////////////////
// CReadTxtView construction/destruction

CReadTxtView::CReadTxtView()
{
//	m_nState = TTSSTATE_STOP;
	m_pText = NULL;
}

CReadTxtView::~CReadTxtView()
{
		if ( m_pText )
		delete[] m_pText;
}

BOOL CReadTxtView::PreCreateWindow(CREATESTRUCT& cs)
{

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CReadTxtView drawing

void CReadTxtView::OnDraw(CDC* pDC)
{
}

/////////////////////////////////////////////////////////////////////////////
// CReadTxtView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CReadTxtView message handlers

void CReadTxtView::Serialize(CArchive& ar) 
{
	if (ar.IsStoring())
	{	// storing code
	}
	else
	{	// loading code
	}
}

BOOL CReadTxtView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	
	return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}
/*
void CReadTxtView::LockText()
{
	theApp.EditList.SetReadOnly();
	if ( m_pText )
		delete[] m_pText;
	int nLength = theApp.EditList.GetWindowTextLength() + 1;
	m_pText = new TCHAR[nLength];
	theApp.EditList.GetWindowText(m_pText, nLength);
}

void CReadTxtView::UnlockText()
{
	delete[] m_pText;
	m_pText = NULL;
	theApp.EditList.SetReadOnly(FALSE);
}

void CReadTxtView::OnSynthPlayAll() 
{
	LockText();
	m_nStart = 0;
	SynthText(m_pText);
}

void CReadTxtView::OnUpdateSynthPlayAll(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(TTSSTATE_STOP == m_nState && theApp.EditList.GetWindowTextLength());
}

void CReadTxtView::OnSynthPause() 
{
	Pause();	
}

void CReadTxtView::OnUpdateSynthPause(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(TTSSTATE_PLAY == m_nState);
	
}

void CReadTxtView::OnSynthPlay() 
{
	if ( TTSSTATE_STOP == GetState() )
	{
		LockText();
		DWORD dwSel =theApp.EditList.GetSel();
		m_nStart = LOWORD(dwSel);
		WORD nLength = HIWORD(dwSel) - m_nStart;
		if ( nLength == 0 )
			SynthText(m_pText + m_nStart);
		else
			SynthText(m_pText + m_nStart, nLength);
	}
	else
		Resume();
	
}

void CReadTxtView::OnUpdateSynthPlay(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable(m_nState != TTSSTATE_PLAY && theApp.EditList.GetWindowTextLength());
	
}

void CReadTxtView::OnSynthStop() 
{
	Cancel();	
}

void CReadTxtView::OnUpdateSynthStop(CCmdUI* pCmdUI) 
{
pCmdUI->Enable(m_nState != TTSSTATE_STOP);
}


LRESULT CReadTxtView::OnSynthAttrChange(WPARAM wParam, LPARAM lParam)
{
	if ( TTSATTR_STATE == wParam )
	{
		m_nState = lParam;

		if ( TTSSTATE_STOP == lParam )
			UnlockText();
	}

	return 0;
}

TTSERROR CReadTxtView::OnAttrChange(TTSDWORD dwAttrId, TTSVAR varAttrValue)
{
	PostMessage(WM_TTS_ATTRCHANGE, (WPARAM)dwAttrId, (LPARAM)varAttrValue);
	return CIsPlayer4::OnAttrChange(dwAttrId, varAttrValue);
}

LRESULT CReadTxtView::OnSynthProgress(WPARAM wParam, LPARAM lParam)
{
	theApp.EditList.SetSel(m_nStart + (int)wParam, m_nStart + (int)lParam);
	return 0;
}

TTSERROR CReadTxtView::OnProgress(TTSDWORD dwProcPos, TTSDWORD dwProcLen)
{
	PostMessage(WM_TTS_PROGRESS, dwProcPos / sizeof(TCHAR), (dwProcPos + dwProcLen) / sizeof(TCHAR));
	return CIsPlayer4::OnProgress(dwProcPos, dwProcLen);
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -