zoukankan      html  css  js  c++  java
  • Symbian多选列表框开发实例(转)

    http://www.j2mehome.com  2009-07-06 12:57  点击: 61 未知   我要评论( 0 )

    • 摘要:昨天6.10太累了,没有写,今天接着努力了! 本小节的MulsList示例程序以CAknDoubleStyleListBox类为例,演示了如何动态创建多选列表框以及批量删除列表项。(在这里我们还是以MyMarkList示例
    • Tags: 图标 icons 开发 实例 //

    本小节的MulsList示例程序以CAknDoubleStyleListBox类为例,演示了如何动态创建多选列表框以及批量删除列表项。(在这里我们还是以MyMarkList示例程序为例,进行改编)

    1.创建多选列表框

    多选列表框在创建时必须指定“EAknListBoxMultiselectionList”,添加数据时注意使用正确的格式串,添加图标时必须保证表示选中状态的图标和表示未选中状态的图标分别是图标数组的第一个和第二个元素(即图标要相对应即可)。主要修改的代码如下:

    void CMyMarkListContainer::ConstructL(const TRect& aRect)
        {
        CreateWindowL();

        // Create listbox
        iListBox = new(ELeave)CAknDoubleGraphicStyleListBox;
        iListBox->SetContainerWindowL(*this);
        iListBox->ConstructL(this,EAknListBoxMultiselectionList);
        iListBox->SetListBoxObserver(this);

        // Load items
        CTextListBoxModel* model = iListBox->Model();
        CDesCArray* array = static_cast<CDesCArray*>(model->ItemTextArray());
        //_LIT(KItemFormat, "1\tRecord%d\t%d");
    // "Icon1\tLabel1\tLabel2" 如果写“1”表示icons(1)的图标作为最前面的Icon,这里还可以为0
    //如果是11.3.4MulsList则使用下面的格式串
    _LIT(KItemFormat,"1\tRecord%d\t%d\t2");

        TBuf<32> record;
        TInt i = 1;
        for (i = 1; i<9 ; i++)
            {
            record.Format(KItemFormat(), i, 100-i, 1);
            array->AppendL(record);
            }

        // Load icons
        CEikonEnv* eikonEnv = CEikonEnv::Static();
        TFileName mbmFile = eikonEnv->EikAppUi()->Application()->BitmapStoreName();
        CArrayPtr<CGulIcon>* icons = new(ELeave) CAknIconArray(3);
        CleanupStack::PushL(icons);
    //    icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMymarklistTick, EMbmMymarklistTickmask));
    //    icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMymarklistStar, EMbmMymarklistStarmask));
    //如果是11.3.4MulsList则使用下面的图标
        icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMymarklistCheck, EMbmMymarklistCheckmask));
        icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMymarklistUncheck, EMbmMymarklistUncheckmask));
        icons->AppendL(eikonEnv->CreateIconL(mbmFile, EMbmMymarklistStar, EMbmMymarklistStarmask));
    CleanupStack::Pop(icons);
        iListBox->ItemDrawer()->FormattedCellData()->SetIconArray(icons);

        // Create scrollbar
        iListBox->CreateScrollBarFrameL(ETrue);
        iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
        CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
        SetRect(aRect);
        ActivateL();
        }

    搞了半天.mbg文件无法重新生成,查了好多资料,没有解释的。

    方法一: 试试清一下工程:
    abld reallyclean
    bldmake clean
    然后重新Build一下:
    bldmake bldfiles
    abld build wins udeb 

    方法二:在group目录下 bmconv 命令  
    bmconv      MyMarkList.mbm /C12Star.bmp

    都无法实现,最后我一气之下,把这两个文件都删除了,结果。。。 哈哈,可以了,估计要生成这两个文件需要手动删除原来的。

    终于搞定了!!!

  • 相关阅读:
    3月16日
    11月8日
    Code4 APP
    为什么alertView弹出后button会消失的问题
    设置某个类使用或者禁用ARC
    Bundle使用&NSBundle
    respondsToSelector
    NSDate获取当前时区的时间
    iOS enum 定义与使用
    IOS开发之纯代码界面--基本控件使用篇 ┊
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1790547.html
Copyright © 2011-2022 走看看