📄 loadcontainer.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 + -