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

📄 mmsdemo1maincontainer.cpp

📁 这是一个在symbian操作系统下编写的发送彩信的程序。
💻 CPP
字号:
/*
* ============================================================================
*  Name     : CMMSDemo1MainContainer from MMSDemo1MainContainer.h
*  Part of  : MMSDemo1
*  Created  : 28.10.2002 by Forum Nokia
*  Implementation notes:
*     Initial content was generated by Series 60 AppWizard.
*  Version  :
*  Copyright: Nokia Corp. 2003
* ============================================================================
*/

// INCLUDE FILES
#include "MMSDemo1MainContainer.h"
#include "mmsdemo1.hrh"
#include <mmsdemo1.rsg>

#include <eiklabel.h>   // for example label control
#include <eikenv.h>     // ieikonenv
#include <aknappui.h>



// ================= MEMBER FUNCTIONS =======================

// ---------------------------------------------------------
// CMMSDemo1MainContainer::ConstructL(const TRect& aRect)
// EPOC two phased constructor
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::ConstructL(const TRect& aRect)
    {
    CreateWindowL();
    iCba = CEikButtonGroupContainer::Current();

    SetRect(aRect);
    ActivateL();
    }

// Destructor
CMMSDemo1MainContainer::~CMMSDemo1MainContainer()
    {

    if (iListBox)	
	    {	
		iAvkonAppUi->RemoveFromStack(iListBox);
		delete iListBox;
	    }
    if(iBuf)
	    delete iBuf;
    }

// ---------------------------------------------------------
// CMMSDemo1MainContainer::SizeChanged()
// Called by framework when the view size is changed
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::SizeChanged()
    {

    }

// ---------------------------------------------------------
// CMMSDemo1MainContainer::SetTextL()
// Set background text.
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::SetTextL(TDesC& aText, TInt aLength)
    {
	if (iBuf)
		delete iBuf;

    iBuf = HBufC::NewL(aLength);
	iBuf->Des().Copy(aText);
	DrawDeferred();
    }


// ---------------------------------------------------------
// CMMSDemo1MainContainer::Draw(const TRect& aRect) const
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::Draw(const TRect& aRect) const
    {
    CWindowGc& gc = SystemGc();
    // TODO: Add your drawing code here
    // example code...
    gc.SetPenStyle(CGraphicsContext::ENullPen);
    gc.SetBrushColor(KRgbGray);
    gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
    gc.DrawRect(aRect);
    const CFont* fontUsed = iEikonEnv->TitleFont();
    gc.UseFont(fontUsed);
    TInt baseline = (Rect().Height() / 2) - fontUsed->AscentInPixels()*2;
    TInt margin=0;
    if(iBuf)gc.DrawText(iBuf->Des(), Rect(), baseline, CGraphicsContext::ECenter, margin);
    if (iListBox)iListBox->Draw(aRect);
    }

// ---------------------------------------------------------
// CMMSDemo1MainContainer::HandleControlEventL(
//     CCoeControl* aControl,TCoeEvent aEventType)
// ---------------------------------------------------------
//
void CMMSDemo1MainContainer::HandleControlEventL(
    CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
    {
    // TODO: Add your control event handler code here
    }


// ---------------------------------------------------------
// CMMSDemo1MainContainer::DisplayTheListboxL(
// Open a listbox with message entries. 
// User can select a message to be opened.
// ---------------------------------------------------------
//
TBool CMMSDemo1MainContainer::DisplayTheListboxL(CDesCArray& aList)
{
    // check parameter length and return if zero
    TInt count = aList.Count();
    if(count == 0)
        {
        // if list is empty we return
        return EFalse;
        }

    if (iListBox)
	    {
        iAvkonAppUi->RemoveFromStack(iListBox);
        delete iListBox;
        }

    iListBox=new( ELeave ) CAknDoubleStyleListBox();
	iListBox->ConstructL( this, EAknListBoxSelectionList);
    iListBox->CreateScrollBarFrameL(ETrue);
    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);

	//link against bafl.DLL
	MDesCArray* itemList = iListBox->Model()->ItemTextArray();
	CDesCArray* itemArray = (CDesCArray*) itemList;

    // read message items from aList to itemArray
    // we read 2 items from aList to form a single item in itemArray
    TInt i = 0;
    TBuf<100> tempBuf;

    if(count%2 == 0) // check validity of our aList item count
        {
        while(i < count)
            {
            // clear buffer
            tempBuf.Delete(0, tempBuf.Length());
            // catenate the two lines(details & description) into one
            tempBuf.Append(_L("\t"));
            tempBuf.Append(aList[i]);
            i++;
            tempBuf.Append(_L("\t"));
            tempBuf.Append(aList[i]);
            // increment for the next round evaluation
            i++;
            // add created buffer to our list
            itemArray->AppendL(tempBuf);
            }
        }


    // change softkeys to "Select / Cancel"
    if( iCba) iCba->SetCommandSetL(R_MMSDEMO1_SOFT_LISTBOX);

	iListBox->HandleItemAdditionL();

	iListBox->SetRect(Rect());
	
	iAvkonAppUi->AddToStackL(iListBox);
	iListBox->ActivateL();
	iListBox->DrawNow();

    return ETrue;
}

// ---------------------------------------------------------
// CMMSDemo1MainContainer::KillTheListboxL(
// Close listbox
// ---------------------------------------------------------
//
TInt CMMSDemo1MainContainer::KillTheListboxL()
	{
    TInt returnValue = 0;
	if(iListBox)
		{
        returnValue = iListBox->CurrentItemIndex();
		iAvkonAppUi->RemoveFromStack(iListBox);
		delete iListBox;	
		iListBox=NULL;
		}

    iCba->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_BACK);
    iCba->DrawNow();
    DrawNow();
	return returnValue;	
	}


// End of File  

⌨️ 快捷键说明

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