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

📄 loadcontainer.cpp

📁 symbian 2rd 备忘录
💻 CPP
字号:

#include <gulicon.h>
#include <aknutils.h>    // definition of AKN_LAF_COLOR()
#include <avkon.hrh>
#include <akntitle.h>

#include <eiklabel.h>
#include <eikedwin.h>
#include <aknnotewrappers.h>
#include <AknNumSecEd.h>    // for numeric secret editor
#include <barsread.h>

#include "LoadContainer.h"
#include "Assistant.rsg"
#include "Assistant.hrh"

//////////////////////////////////////////////////////////////////////////

CLoadContainer::CLoadContainer()
{
	m_pLabelName = NULL;
	m_pLabelPsw = NULL;
	
	m_pEditName = NULL;
	m_pEditPsw = NULL;
}

// EPOC default constructor can leave.
void CLoadContainer::ConstructL(const TRect& aRect)
{
    CreateWindowL();

	//create name label
	m_pLabelName = new( ELeave ) CEikLabel;
	m_pLabelName->SetContainerWindowL( *this );
	TBuf<32> sTmpLabel;
	CEikonEnv::Static()->ReadResource(sTmpLabel, R_QTN_ASSISTANT_NAME);
	m_pLabelName->SetTextL(sTmpLabel);
	m_pLabelName->SetExtent(TPoint(10,20), m_pLabelName->MinimumSize());	

	//create password label
	m_pLabelPsw = new( ELeave ) CEikLabel;
	m_pLabelPsw->SetContainerWindowL( *this );
	TBuf<32> sTmpLabe2;
	CEikonEnv::Static()->ReadResource(sTmpLabe2, R_QTN_ASSISTANT_PASSONE);
	m_pLabelPsw->SetTextL(sTmpLabe2);
	m_pLabelPsw->SetExtent(TPoint(10,60), m_pLabelPsw->MinimumSize());
	
	//create name edit 

	m_pEditName = new (ELeave) CEikEdwin;
	m_pEditName->SetContainerWindowL(*this);
	m_pEditName->ConstructL(EAknEditorFlagDefault, 10, 11, 10);
	m_pEditName->SetExtent(TPoint(70,20), TSize(80,20));
	m_pEditName->SetAknEditorAllowedInputModes(EAknEditorNumericInputMode);
	m_pEditName->SetAknEditorInputMode(EAknEditorNumericInputMode);
	m_pEditName->SetFocus(ETrue);
	
	//create password edit

	TResourceReader reader1;
	iCoeEnv->CreateResourceReaderLC(reader1,R_PASSWORD_EDIT_NUMBER);
	m_pEditPsw = new (ELeave) CAknNumericSecretEditor() ;
	m_pEditPsw->SetContainerWindowL(*this);
	m_pEditPsw->ConstructFromResourceL(reader1);
	CleanupStack::PopAndDestroy();
	 m_pEditPsw->SetExtent(TPoint(69,60),TSize(84,22));
// 	m_pEditPsw->SetFocus(EFalse);
// 	m_pEditPsw->SetBorder(ENone);

    SetRect( aRect );
    ActivateL();
}

// destructor
CLoadContainer::~CLoadContainer()
{
	MEMORY_FREE(m_pLabelName);
	
	MEMORY_FREE(m_pLabelPsw);
	
	MEMORY_FREE(m_pEditName);
	
	MEMORY_FREE(m_pEditPsw);
}

void CLoadContainer::SizeChanged()
{
}

// ---------------------------------------------------------
// CLoadContainer::CountComponentControls() const
// return the number of controls
// ---------------------------------------------------------
//
TInt CLoadContainer::CountComponentControls() const
{
	// return number of controls inside this container
	return 4; 
}

// ---------------------------------------------------------
// CLoadContainer::ComponentControl(TInt aIndex) const
// return the pointer to specified control.
// ---------------------------------------------------------
//
CCoeControl* CLoadContainer::ComponentControl( TInt aIndex ) const
{

	switch(aIndex)
	{
	case 0:
		return m_pLabelName;
	case 1:
		return m_pLabelPsw;
	case 2:
		return m_pEditName;
	case 3:
		return m_pEditPsw;
	}
	return NULL;
}

// ---------------------------------------------------------
// CLoadContainer::Draw(const TRect& aRect) const
// handle the message when client region must be redrawn.
// ---------------------------------------------------------
//
void CLoadContainer::Draw( const TRect& aRect ) const
{
	CWindowGc& gc = SystemGc();

	gc.SetPenStyle(CGraphicsContext::ENullPen);
    gc.SetBrushColor(KRgbWhite);
    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
    gc.DrawRect(aRect);
	gc.SetPenStyle(CGraphicsContext::ESolidPen);
	gc.SetPenColor(KRgbGray);
	TPoint startPos(69,19);
	TPoint endPos(151,19);
	TPoint sta(69,41);
	TPoint endlt(151,41);
	gc.DrawLine(startPos, endPos);
	gc.DrawLine(startPos,sta);
	gc.DrawLine(sta,endlt);
	gc.DrawLine(endPos,endlt);

// 	gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
// 	gc.SetBrushColor(KRgbWhite);
// 	gc.DrawRect(Rect());
// 
// 	//Name -----  长方形
// 	gc.SetPenStyle(CGraphicsContext::ESolidPen);
// 	TRect rect1;
// 	rect1.iTl = TPoint(62,33);
// 	rect1.iBr = TPoint(166,57);
// 	gc.DrawRect(rect1);
// 
// 	//Password ------- 长方形
// 	gc.SetPenStyle(CGraphicsContext::ESolidPen);
// 	TRect rect2;
// 	rect2.iTl = TPoint(62,63);
// 	rect2.iBr = TPoint(167,85);
// 	gc.DrawRect(rect2);

}

// ---------------------------------------------------------
// CAknExGridContainer::OfferKeyEventL(
//           const TKeyEvent& aKeyEvent, TEventCode aType )
// Handles the key events.
// ---------------------------------------------------------
//
TKeyResponse CLoadContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType )
{
	
	if (m_pEditName)
	{
		if (m_pEditName->IsFocused())
		{
			if((aType == EEventKey) && (aKeyEvent.iCode == EKeyDownArrow))
			{
				m_pEditName->SetFocus(EFalse);
				m_pEditPsw->SetFocus(ETrue);
				DrawDeferred();
				return EKeyWasConsumed;
			}

			return m_pEditName->OfferKeyEventL(aKeyEvent, aType);
		}
	}
	if (m_pEditPsw)
	{
		if (m_pEditPsw->IsFocused())
		{
			if((aType == EEventKey) && (aKeyEvent.iCode == EKeyUpArrow))
			{
				m_pEditPsw->SetFocus(EFalse);
				m_pEditName->SetFocus(ETrue);
				DrawDeferred();
				return EKeyWasConsumed;
			}
			return m_pEditPsw->OfferKeyEventL(aKeyEvent, aType);
		}
	}
	return EKeyWasConsumed;
}
void CLoadContainer::GetData(TDes& aName,TDes& aPsw)
{
	m_pEditName->GetText(aName);
	m_pEditPsw->GetText(aPsw);
}



⌨️ 快捷键说明

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