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

📄 richtexteditorcontainer.cpp

📁 《基于symbian手机开发与应用》一书的源代码
💻 CPP
字号:
/* Copyright (c) 2006, Nokia Mobile Phones. All rights reserved */

#include "RichTextEditorContainer.h"
#include <barsread.h>
#include <eikrted.h>
#include <txtrich.h>
#include <txtfrmat.h>
#include <gdi.h >
#include <normaltexteditor.rsg>

CRichTextEditorContainer* CRichTextEditorContainer::NewL(const TRect& aRect)
    {
    CRichTextEditorContainer* self = CRichTextEditorContainer::NewLC(aRect);
    CleanupStack::Pop(self);
    return self;
    }

CRichTextEditorContainer* CRichTextEditorContainer::NewLC(const TRect& aRect)
    {
    CRichTextEditorContainer* self = new (ELeave) CRichTextEditorContainer;
    CleanupStack::PushL(self);
    self->ConstructL(aRect);
    return self;
    }

CRichTextEditorContainer::~CRichTextEditorContainer()
    {
    // no implementation required
    }

void CRichTextEditorContainer::ConstructL(const TRect& aRect)
    {
    CreateWindowL();

	iRichTextEditor=new (ELeave)CEikRichTextEditor();
	iRichTextEditor->SetContainerWindowL(*this);
	TResourceReader reader;
	iCoeEnv->CreateResourceReaderLC(reader, R_RICH_TEXT_EDITOR);
    iRichTextEditor->ConstructFromResourceL(reader);
	CleanupStack::PopAndDestroy();
	iRichTextEditor->SetFocus(ETrue);
    SetRect(aRect);
    ActivateL();
	iRichTextEditor->SetCursorPosL(0,EFalse);
    }

CRichTextEditorContainer::CRichTextEditorContainer()
    {
    // no implementation required
    }

TInt CRichTextEditorContainer::CountComponentControls() const
    {
    return 1;
    }

void CRichTextEditorContainer::Draw(const TRect& aRect) const
    {    
    CWindowGc& gc = SystemGc();
	gc.Clear(aRect);
    }

CCoeControl* CRichTextEditorContainer::ComponentControl(TInt aIndex) const
{
    switch(aIndex)
	{
	case 0:
	    return iRichTextEditor;
	default:
		return NULL;
    }
}

	TKeyResponse CRichTextEditorContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode& aType)
	{
		if(aType==EEventKey)
		{
			if(aKeyEvent.iCode==EKeyDownArrow)
			{
				iRichTextEditor->MoveCursorL(TCursorPosition::EFLineDown,EFalse);
				return EKeyWasConsumed;
			}
			else if(aKeyEvent.iCode==EKeyUpArrow)
			{
				iRichTextEditor->MoveCursorL(TCursorPosition::EFLineUp,EFalse);
				return EKeyWasConsumed;
			} 
		    else
			{
			    return iRichTextEditor->OfferKeyEventL(aKeyEvent,aType);
			}
		}
		else
			return EKeyWasNotConsumed;
	}
void  CRichTextEditorContainer::SetTextFormat()
	{
		iCharFormatMask.SetAttrib(EAttFontStrokeWeight);
		iCharFormat.iFontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightBold);
		CRichText* richText=iRichTextEditor->RichText();
		richText->ApplyCharFormatL(iCharFormat,iCharFormatMask,0,richText->DocumentLength());
	}




⌨️ 快捷键说明

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