从下边弹出一个列表实现单选



Includes:
#include <aknlists.h>
#include <aknpopup.h>
#include <BADESCA.H>
 
Link Against:
avkon.lib
eikctl.lib
eikcoctl.lib
bafl.lib



_LIT(KtxPopUpTitle            ,"Select item");
 
_LIT(KtxPopUpItem1            ,"Item 1");
_LIT(KtxPopUpItem2            ,"Item 2");
_LIT(KtxPopUpItem3            ,"Item 3");
_LIT(KtxPopUpItem4            ,"Item 4");
_LIT(KtxPopUpItem5            ,"Item 5");
 
void SelectSomethingL(TDes& aSelected)
{
    CAknSinglePopupMenuStyleListBox* list =
new(ELeave)CAknSinglePopupMenuStyleListBox;
    CleanupStack::PushL(list);
 
    CAknPopupList* popupList = CAknPopupList::NewL(list,
R_AVKON_SOFTKEYS_OK_BACK, AknPopupLayouts::EMenuWindow); 
    CleanupStack::PushL(popupList);
 
    list->ConstructL(popupList, 0);
    list->CreateScrollBarFrameL(ETrue);
    list->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff,
CEikScrollBarFrame::EAuto);
 
    CDesCArrayFlat* ItemArray = new(ELeave)CDesCArrayFlat(5);
    CleanupStack::PushL(ItemArray);
 
    // add the item adding in here..
    ItemArray->AppendL(KtxPopUpItem1);
    ItemArray->AppendL(KtxPopUpItem2);
    ItemArray->AppendL(KtxPopUpItem3);
    ItemArray->AppendL(KtxPopUpItem4);
    ItemArray->AppendL(KtxPopUpItem5);
 
    CleanupStack::Pop();            //ItemArray
    list->Model()->SetItemTextArray(ItemArray);
    list->Model()->SetOwnershipType(ELbmOwnsItemArray);
 
    popupList->SetTitleL(KtxPopUpTitle);
 
    // Show popup list and then show return value.
    TInt popupOk = popupList->ExecuteLD();
    if (popupOk)
    {
        TInt Sel = list->CurrentItemIndex();
        if (Sel >= 0 && Sel < ItemArray->MdcaCount())
        {
            aSelected.Copy(ItemArray->MdcaPoint(Sel));
        }
    }
 
    CleanupStack::Pop();            // popuplist
    CleanupStack::PopAndDestroy(1); // list
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值