Как я могу изменить изображение в диалоге «Ожидание» с помощью Symbian - PullRequest
2 голосов
/ 08 июня 2011

Я пытался изменить изображение (значок) диалогового окна ожидания с значка «Шестерня» на другое, но мне не удалось, хотя я следую многим статьям и примерам в книгах:

RESOURCE DIALOG r_progressdlg_container_wait_dialog1
{
flags = EAknWaitNoteFlags;
buttons = R_AVKON_SOFTKEYS_CANCEL;
items =
    {
    DLG_LINE
        {
        id = EProgressdlgContainerViewWaitDialog1;
        type = EAknCtNote;
        control = AVKON_NOTE
            {
            layout = EWaitLayout;
            singular_label = STR_progressdlgContainerView_10;
            animation = R_QGN_GRAF_WAIT_BAR_ANIM;
            };
        },
    DLG_LINE 
        {
        id = EProgressdlgContainerViewWaitDialog1;
        type=EEikCtImage;
        control = IMAGE
           {
              horiz_align=EEikLabelAlignHRight;
              vert_align=EEikLabelAlignVTop;
              bmpfile = "\\resource\\apps\\progressdlg.mbm"; 
              bmpid = EMbmProgressdlgList_icon;
              bmpmask = EMbmProgressdlgList_icon_mask;
              extension=0;
           };
        }

    };
}

Вот мой обновленный код, основанный на вашей поддерживаемой информации, но, В диалоговом окне по-прежнему отображается значок по умолчанию "Шестерня", так что же не так в коде?

Я использую карбид.C ++ 2.7, S60 5th Ed SDK, Тестирование на Nokia E7 (Symbian ^ 3)

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Вы можете заменить изображение немного так:

//   CONSTANTS
#define AVKON_BMPFILE_NAME "\\resource\\apps\\avkon2.mbm"

...

RESOURCE DIALOG r_my_progress_note
    {
    flags = EAknProgressNoteFlags;
    buttons = r_my_softkeys_cancel;
    items =
        {
        DLG_LINE
            {
            type = EAknCtNote;
            id = EMyCtrlIdProgressNote;
            control = AVKON_NOTE
                {
                layout = EProgressLayout;
                singular_label = STRING_r_exnt_progress_singular;
                plural_label = STRING_r_exnt_progress_plural;
                imagefile = AVKON_BMPFILE_NAME;
                imageid = EMbmAvkonQgn_note_progress;
                imagemask = EMbmAvkonQgn_note_progress_mask;
                };
            }
        };
    }

Приложение-пример Note содержит множество примеров замененных изображений в разных диалогах. В S60 5th edition SDK вы найдете его в:

C:\S60\devices\S60_5th_Edition_SDK_v1.0\S60CppExamples\Note

Также может быть проблема с вашим .mbm или индексами, поэтому сначала попробуйте avkon2.mbm.

1 голос
/ 16 июня 2011

Похоже, код, который вы разместили, относится к анимации индикатора выполнения, а не к значку.Я думаю, вам нужно что-то вроде

DLG_LINE {
   id=EDlgListBoxViewWaitDialog1;
   type=EEikCtImage;
   control = IMAGE
   {
      bmpfile = "example.mbm"; // Replace with your .mbm file
      bmpid = mbmID; // // The id of the image
   };
}

или просто установить это в коде?

...