symbian对话框汇总3

来源:互联网 发布:s25fl256s 单片机 编辑:程序博客网 时间:2024/06/07 07:27

http://blog.csdn.net/linzhiji/archive/2010/02/24/5321928.aspx

多行请求对话框


RESOURCE DIALOG r_aknexquery_multi_line_date_and_duration_layout
{
        flags = EGeneralQueryFlags;
        buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
        items =
        {
                DLG_LINE
                {
                        type = EAknCtMultilineQuery;
                        id = EMultilineFirstLine;
                        control = AVKON_DATA_QUERY
                        {
                                layout = EMultiDataFirstDateEd;
                                label = qtn_aknexquery_date_label_text;
                                control = DATE_EDITOR
                                {
                                        minDate = DATE
                                        {
                                                year = AKNEXQUERY_DATE_EDITOR_MIN_DATE;
                                        };
                                        maxDate = DATE
                                        {
                                                year = AKNEXQUERY_DATE_EDITOR_MAX_DATE;
                                        };
                                        flags = AKNEXQUERY_DATE_EDITOR_FLAGS;
                                };
                        };
                },
                DLG_LINE
                {
                        type = EAknCtMultilineQuery;
                        id = EMultilineSecondLine;
                        control = AVKON_DATA_QUERY
                        {
                                layout = EMultiDataSecondDurEd;
                                label = qtn_aknexquery_dura_label_text;
                                control = DURATION_EDITOR
                                {
                                        minDuration = DURATION
                                        {
                                        };
                                        maxDuration = DURATION
                                        {
                                                seconds = AKNEXQUERY_DURATION_EDITOR_MAX_SECOND;
                                        };
                                        flags = AKNEXQUERY_DURATION_EDITOR_FLAGS;
                                };
                        };
                }
        };
}
多行请求对话框对应的类是:CAknMultiLineDataQueryDialog。下面代码示例之:
TTime topDateTime;
topDateTime.Set(bufferRes);
topDateTime.HomeTime();
TTimeIntervalSeconds bottomDuration = 300; // set timer to 5 minutes
CAknMultiLineDataQueryDialog* dlg = CAknMultiLineDataQueryDialog::NewL

(topDateTime,bottomDuration);

// launch the dialog with resource
if (dlg->ExecuteLD(R_AKNEXQUERY_MULTI_LINE_DATE_AND_DURATION_LAYOUT))
{
        // ok pressed, date and time (duration) are TTime objects
        // containing the entered date and time (duration) in the editors.
}

列表请求对话框


RESOURCE DIALOG r_demo_list_query
{
        flags = EGeneralQueryFlags;
        buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
        items =
        {
                DLG_LINE
                {
                        type = EAknCtListQueryControl;
                        id = EListQueryControl;
                        control = AVKON_LIST_QUERY_CONTROL
                        {
                                listtype = EAknCtSinglePopupMenuListBox;
                                listbox = LISTBOX
                                {
                                        flags = EAknListBoxMenuList;
                                        height = 3;
                                        width = 10;
                                        array_id = r_demo_list_query_item;
                                };
                                heading = "Select one item:";
                        };
                }
        };
}

RESOURCE ARRAY r_demo_list_query_item
{
        items =
        {
                LBUF {txt = "First item"; },
                LBUF {txt = "Second item"; },
                LBUF {txt = "Third item"; }
        };
}
有另外一种定义列表请求对话框的方法,是使用资源结构AVKON_LIST_QUERY代替DIALOG

结构,它是在DIALOG基础上定义的,示例如下:
RESOURCE AVKON_LIST_QUERY r_demo_list_query
{
        flags = EGeneralQueryFlags;
        softkeys = R_AVKON_SOFTKEYS_OK_CANCEL;
        items =
        {
                AVKON_LIST_QUERY_DLG_LINE
                {
                        control = AVKON_LIST_QUERY_CONTROL
                        {
                                listtype = EAknCtSinglePopupMenuListBox;
                                listbox = AVKON_LIST_QUERY_LIST
                                {
                                        array_id = r_demo_list_query_item;
                                };
                                heading = "Select one item:";
                        };
                }
        };
}
列表请求对话框对应的类是:CAknListQueryDialog。下面代码示例之:
TInt index( 0 );
CAknListQueryDialog* dlg = new( ELeave ) CAknListQueryDialog( &index );

// launch the dialog with resource R_DEMO_MULTILINE_DATE_AND_TIME_QUERY
if ( dlg->ExecuteLD(R_DEMO_LIST_QUERY) )
{
        // ok pressed, index is the selected item index.
}

多选列表请求对话框


可以使用资源结构DIALOG或AVKON_MULTISELECTION_LIST_QUERY来定义多选列表请求对

话框。
RESOURCE DIALOG r_demo_multiselection_query
{
        flags = EGeneralQueryFlags;
        buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
        items =
        {
                DLG_LINE
                {
                        type = EAknCtListQueryControl;
                        id = EListQueryControl;
                        control = AVKON_LIST_QUERY_CONTROL
                        {
                                listtype = EAknCtSingleGraphicPopupMenuListBox;
                                listbox = LISTBOX
                                {
                                        flags = EAknListBoxMultiselectionList;
                                        height = 3;
                                        width = 3;
                                        array_id = r_demo_multiselection_query_list_item;
                                };
                                heading = "Select items:";
                        };
                }
        };
}

RESOURCE AVKON_MULTISELECTION_LIST_QUERY r_demo_multiselection_query
{
        // flags = EGeneralQueryFlags;
        // softkeys = r_avkon_softkeys_ok_cancel;
        items =
        {
                AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE
                {
                        control = AVKON_LIST_QUERY_CONTROL
                        {
                                listtype = EAknCtSingleGraphicPopupMenuListBox;
                                listbox = AVKON_MULTISELECTION_LIST_QUERY_LIST
                                {
                                        array_id= r_demo_multiselection_query_list_item;
                                };
                                heading = "Select items:";
                        };
                }
        };
}

RESOURCE ARRAY r_demo_multiselection_query_list_item
{
        items =
        {
                LBUF { txt = "1/tItem1"; },
                LBUF { txt = "1/tItem2"; },
                LBUF { txt = "1/tItem3"; },
                LBUF { txt = "1/tItem4"; },
                LBUF { txt = "1/tItem5"; }
        };
}
多选列表请求对话框对应的类是:CAknListQueryDialog。下面代码示例之:
CArrayFixFlat<TInt>* indexArray = new(ELeave)CArrayFixFlat<TInt>(5);
CleanupStack::PushL(indexArray);

CAknListQueryDialog* dlg = new (ELeave) CAknListQueryDialog(indexArray);
if ( dlg->ExecuteLD(R_DEMO_MULTISELECTION_QUERY ) )
{
        // ok pressed, indexArray is the array of the indices of the selected items.
}
CleanupStack::PopAndDestroy();// indexArray