📄 ndgrid.cpp
字号:
#include "NDGrid.h"
//构造函数
CNDGrid::CNDGrid()
{
iTextArray = NULL;
iIconArray = NULL;
iX = 0;
iY = 0;
}
void CNDGrid::ConstructL(CDesC16ArrayFlat* aTextArray,RPointerArray<CFbsBitmap>* aIconArray)
{
iTextArray = aTextArray;
iIconArray = aIconArray;
}
//析构函数
CNDGrid::~CNDGrid()
{
}
//绘制Grid在指定GC上
void CNDGrid::Draw(CWindowGc &aGc)
{
TRect rect;
rect.SetRect(1+iX*58,1+iY*46,58+iX*58,50+iY*46);
aGc.SetBrushColor(TRgb(0xdfcfca));
aGc.DrawRect(rect);
for(TInt i=0;i<3;i++)
{
for(TInt j=0;j<3;j++)
{
rect.SetRect(29+58*j-19,19+48*i-17,29+19+58*j,19+17+48*i);
aGc.DrawBitmap(rect,(*iIconArray)[i*3+j]);
aGc.DrawText((*iTextArray)[i*3+j],TPoint(12+58*j,48+48*i));
}
}
}
//获取当前选中索引
TInt CNDGrid::Selected()
{
return iX*3+iY;
}
//按键处理
TKeyResponse CNDGrid::OfferKeyEventL(const TKeyEvent &aKeyEvent, TEventCode aType)
{
if(aKeyEvent.iCode == EKeyDownArrow && aType == EEventKey)
{
if(iY != 2)
{
iY += 1;
}
else if(iX == 0 && iY == 2 || iX == 1)
{
iY = 0;
iX += 1;
}
else
{
iY = 0;
iX = 0;
}
return EKeyWasConsumed;
}
else if(aKeyEvent.iCode == EKeyUpArrow && aType == EEventKey)
{
if(iY != 0)
{
iY -= 1;
}
else if(iY == 0 && iX == 1 || iX == 2)
{
iY = 2;
iX -= 1;
}
else
{
iY = 2;
iX = 2;
}
return EKeyWasConsumed;
}
else if(aKeyEvent.iCode == EKeyLeftArrow && aType == EEventKey)
{
if(iX != 0)
{
iX -= 1;
}
else if(iX == 0 && iY == 1 || iY == 2)
{
iY-=1;
iX = 2;
}
else
{
iY =2;
iX =2;
}
return EKeyWasConsumed;
}
else if(aKeyEvent.iCode == EKeyRightArrow && aType == EEventKey)
{
if(iX != 2)
{
iX += 1;
}
else if(iX == 2 && iY == 0 || iY ==1)
{
iY+=1;
iX = 0;
}
else
{
iY=0;
iX=0;
}
return EKeyWasConsumed;
}
return EKeyWasConsumed;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -