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

📄 mycolumnlistboxappview.cpp

📁 VC++ 开发的基于Symbian 手机系统的应用
💻 CPP
字号:
/* Copyright (c) 2008, Nokia. All rights reserved */

#include "MyColumnListBoxAppView.h"
#include <aknviewappui.h>
#include <aknconsts.h>
#include <MyColumnListBox.rsg>
#include "CDreamColumnListBox.h"
#include "MyColumnListBox.hrh"

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

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

void CMyColumnListBoxAppView::ConstructL(const TRect& aRect)
    {
	BaseConstructL(R_VIEW);
	iRect = aRect;
//    CreateWindowL();
//
//    SetRect(aRect);
//
//    ActivateL();
    }

CMyColumnListBoxAppView::CMyColumnListBoxAppView()
    {
    // Add any construction code that can not leave here
    }


CMyColumnListBoxAppView::~CMyColumnListBoxAppView()
    {
    // Add any destruction code here
    }

//void CMyColumnListBoxAppView::Draw(const TRect& /*aRect*/) const
//    {
//    // Clear the screen
//    CWindowGc& gc = SystemGc();
//    gc.Clear(Rect());
//    }


TUid CMyColumnListBoxAppView::Id() const
    {
    return TUid::Uid(1);
    }

void CMyColumnListBoxAppView::DoActivateL(const TVwsViewId& /*aPrevViewId*/,
                                    TUid /*aCustomMessageId*/,
                                    const TDesC8& /*aCustomMessage*/)
    {
//    ASSERT(!(iContainer));
//    iContainer = CMultiViewsContainer1::NewL(ClientRect());

  TFontSpec iFontSpec(_L("宋体"),170);//SwissA
  iCoeEnv->ScreenDevice()->GetNearestFontInTwips(iFont,iFontSpec);

  iBox=new (ELeave) CDreamColumnListBox();
//  TRect irect;
//  irect = ClientRect();
  iBox->ConstructL(0,iFont,AppUi()->ClientRect());
  iBox->SetMopParent(this);
  iBox->SetObserver(this);

  AppUi()->AddToStackL( *this, iBox );//保证iBox获得焦点,有滚动条
//  AppUi()->AddToStackL(*this, iBox->GetListBoxSub());

  
  iBox->SetRect(AppUi()->ClientRect());
  iBox->SetPosition(TPoint(0,22));
  iBox->SetSize(TSize(200,150));//120,200

  /* Just for having some nice content for the list box, enumerate
     all installed fonts and show their names, whether they are
     scalable or not, how many different sizes they have, and whether
     they are proportional or monospaced, in 4 different columns
  */
  TBuf<100> iLine;
  TBuf<10> iStr;

  iBox->AppendColumnL(50,iFont,_L("name"));//150
  iBox->AppendColumnL(40,iFont,_L("price"));
  iBox->AppendColumnL(40,iFont,_L("time"));
  iBox->AppendColumnL(40,iFont,_L("handle"));

  CDesCArrayFlat* iArray=new(ELeave) CDesCArrayFlat(5);
  iBox->SetItemTextArray(iArray);

  _LIT(KTab,"\t");
  _LIT(KYes,"yes");
  _LIT(KNo,"no");

  //枚举Symbian可用的字体列表
  TTypefaceSupport iTypefaceSupport=TTypefaceSupport();
  TInt iFontCount=iCoeEnv->ScreenDevice()->NumTypefaces();
  TInt iIndex=0;
  for (;;) 
  {
    if (iIndex==iFontCount) 
	{
      break;
    }
    iCoeEnv->ScreenDevice()->TypefaceSupport(iTypefaceSupport,iIndex);
    iLine.Copy(iTypefaceSupport.iTypeface.iName);
    iLine.Append(KTab);
    if (iTypefaceSupport.iIsScalable) 
	{
      iLine.Append(KYes);
    }
    else 
	{
      iLine.Append(KNo);
    }
    iLine.Append(KTab);
    iStr.Num(iTypefaceSupport.iNumHeights);
    iLine.Append(iStr);
    iLine.Append(KTab);
    if (iTypefaceSupport.iTypeface.IsProportional()) 
	{
      iLine.Append(KYes);
    }
    else 
	{
      iLine.Append(KNo);
    }
    iArray->AppendL(iLine);
    iIndex++;
  }

  iBox->BaseBox()->HandleItemAdditionL();

//  ActivateL();

  // Set the focus to the list box; without focus, it won't show
  // the selection
  iBox->SetScrollBarVisibilityL(CEikScrollBarFrame::EOn,
                                CEikScrollBarFrame::EAuto);
  iBox->ActivateL();
  iBox->SetFocus(ETrue);
  
//  iBox->ActivatelSub();

    }

void CMyColumnListBoxAppView::DoDeactivate()
    {
    if (iBox)
        {
        AppUi()->RemoveFromStack(iBox);
        delete iBox;
        iBox = NULL;
        }

    }

void CMyColumnListBoxAppView::HandleCommandL(TInt aCommand)
    {

      AppUi()->HandleCommandL(aCommand);
     
    }

TKeyResponse CMyColumnListBoxAppView::HandleKeyEventL(
						const TKeyEvent& aKeyEvent,
						TEventCode aType)
{
	if(aType == EKeyDownArrow)
	{
		TInt i;
		i = 1;
	}
	else 
	{
	}
	return EKeyWasConsumed;
}
TKeyResponse CMyColumnListBoxAppView::OfferKeyEventL(
        const TKeyEvent& aKeyEvent, TEventCode aType )
    {
    TInt code = aKeyEvent.iCode;

    return( EKeyWasNotConsumed );
    }

void CMyColumnListBoxAppView::HandleControlEventL(
    CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
    {
	TInt i = 0;
    // TODO: Add your control event handler code here
    }

void CMyColumnListBoxAppView::HandleListBoxEventL(CEikListBox* /*aListBox*/,TListBoxEvent aListBoxEvent)
{
	TInt i = 0;
	if(aListBoxEvent==MEikListBoxObserver::EEventEnterKeyPressed)
	{
//		HBufC* noteText;
//		TInt currentItem=iListBox->CurrentItemIndex();
//
//		switch (currentItem)
//		{
//		  case 0:
//			  {
//		       noteText=StringLoader::LoadLC(R_NOTE_TEXT1);
//		       break;
//			  }
//		  case 1:
//			  {
//               noteText=StringLoader::LoadLC(R_NOTE_TEXT2);
//		       break;
//			  }
//		  default:
//		    	break;
//		}
//
//		CAknConfirmationNote* note=new(ELeave) CAknConfirmationNote();
//		note->ExecuteLD(*noteText);
//		CleanupStack::PopAndDestroy(noteText);
	}
}

⌨️ 快捷键说明

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