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

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

    终于搞定了!!!

  • 相关阅读:
    好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效button
    ZOJ
    为应用程序加入缓存
    3、Spring4之Bean 配置的细节
    POJ
    解决apache+tomcatserver环境中文乱码的问题
    2014年CCNU-ACM暑期集训总结
    POJ 1328 Radar Installation(贪心)
    CF 452A(Eevee-直接试)
    Android中View和ViewGroup介绍
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1790547.html
Copyright © 2011-2022 走看看