• 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

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

    终于搞定了!!!

  • 相关阅读:
    Docker笔记(三):Docker安装与配置
    Docker笔记(二):Docker管理的对象
    Docker笔记(一):什么是Docker
    ubuntu18.04上搭建KVM虚拟机环境超完整过程
    软件项目研发流程该怎么规范
    线程池的基本原理,看完就懂了
    Spring Boot2从入门到实战:统一异常处理
    redission-tomcat:快速实现从单机部署到多机部署
    4. matlab入门——函数、绘图基础
    3. matlab入门——控制结构、选择结构、循环结构、错误控制
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1790547.html
Copyright © 2020-2023  润新知