• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            專注于服務(wù)器編程、網(wǎng)絡(luò)編程

            ~~保持一顆平常心~~持之以恒~~
            posts - 18, comments - 7, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            MMI一些總結(jié)

            Posted on 2009-12-19 10:55 ~William~ 閱讀(561) 評論(0)  編輯 收藏 引用 所屬分類: MTK_MMI

               MMI一些總結(jié)
            1 繪制字符串
              聲明頭文件“gui.h”
            設(shè)定字體:
            Void (*pixtel_UI_set_font)(UI_font_type f)=NULL;
            參數(shù)f 為需要使用的字體,可以使用系統(tǒng)已經(jīng)有的字體如:MMI_sublcd_font. 也可以自己定義字體。使用 stFontAttribute xxxx 定義自己需要的字體。
            在 解密MTK文檔\MMI\176X220GPRS.pdf中有關(guān)于中文字體的一些定義
            設(shè)定文本顯示位置:
            Void (*pixtel_UI_move_text_cursor)(s32 x,s32 y)=NULL;
            參數(shù) x,y為將要顯示字符串的左上角坐標。
            設(shè)定文本顏色:
            Void (*pixtel_UI_set_text_color)(color c)=NULL;
            color 為一個結(jié)構(gòu)體。用于定義RGB顏色和alpha通道
            typedef struct _color
            {
              byte r;
              byte g;
              byte b;
              byte alpha;
            }color;
            打印文本:
            Void (*pixtel_UI_print_text)(UI_string_type_text) = NULL;
            需要注意的是字符串前面都需要加L。
            2 圖片繪制
            如何制作透明背景圖片:
            1 首先利用Photoshop設(shè)計一個bmp格式圖片
            2 [圖像]?[模式]將其顏色改變?yōu)樗饕?br>3 [圖像]?[模式]打開該圖片的顏色表。將第一格的顏色值改為該圖片上沒有用到過的其他顏色。然后確定保存。
            4 將該圖片導(dǎo)入MTK工程后,該圖片覆蓋在其他圖片上時,背景透明。
            MTK不支持PNG圖片,位于Images目錄下的資源文件不支持jpeg,同樣不支持PNG。
            圖片繪制:
            Void (*pixtel_UI_show_transparent_image)(s32 x,s32 y,UI_image_type I,UI_transparent_color_type t)=NULL;
            該函數(shù)以x,y為坐標繪制圖片,同時指定顏色t為透明色,即t顏色不顯示,當作透明。
            例如在原點位置顯示ID為IMG_GLOBAL_TEST的圖片。
            pixtel_UI_show_transparent_image(0, 0, get_image(IMG_GLOBAL_TEST), pixtel_UI_transparent_color(255,255,203));
            接著,需要設(shè)定緩沖區(qū)用于圖片顯示在屏幕上,這是必不可少的。
            pixtel_UI_BLT_double_buffer(0,0,UI_device_width-1, UI_device_height-1);
            關(guān)于圖片繪制還有很多種方法,
            詳細見 解密MTK文檔\MMI Design Doc\Pixtel_UI_Programmers_Manual.pdf
            3關(guān)于觸摸屏
            1 編寫觸摸筆按下時的句柄函數(shù),包含用戶所需要的一些響應(yīng)。例如我們讓觸摸筆按下時候,將變量touch_pressed設(shè)置為TRUE,同時,pos紀錄了觸摸筆落在屏幕上面的坐標。
              void mmi_pen_down_hdlr(mmi_pen_point_struct pos)
            {
                touch_pressed = TRUE;
            }
            2 調(diào)用系統(tǒng)函數(shù) mmi_wgui_register_pen_down_handler(mmi_pen_hdlr pen_down_hdlr)
              注冊前面的觸摸筆按下的句柄函數(shù):
            mmi_wgui_register_pen_down_handler(mmi_pen_down_hdlr)
            然后,觸摸筆就可以生效。當我們點下觸摸筆時候,touch_pressed為真。
            3 對于觸摸筆釋放也是一樣的道理,也需要設(shè)置釋放的函數(shù)mmi_pen_up_hdlr,然后調(diào)用
            mmi_wgui_register_pen_up_handler(mmi_pen_up_hdlr)注冊前面的釋放函數(shù)。
            在這兩個系統(tǒng)函數(shù)中的參數(shù)中,mmi_pen_hdlr為函數(shù)指針。利用函數(shù)指針可以實現(xiàn)一個通用的函數(shù)來實現(xiàn)各種專用的功能。
            typedef void (*mmi_pen_hdlr)(mmi_pen_point_struct pos);
            4 關(guān)于按鍵
              類似于觸摸筆操作,首先編寫一個按鍵函數(shù),里面實現(xiàn)用戶所期望的功能。例如
            Void key_2_press(void)
            {
               2號鍵按下標志=TRUE;
            }
            然后調(diào)用系統(tǒng)函數(shù)
            SetKeyHandler(key_2_press,KEY_2,KEY_EVENT_DOWN);注冊該函數(shù),并將2號鍵,事件類型與該函數(shù)綁定。
            作了上面工作,2號鍵就能夠在MTK里起作用。
            5 關(guān)于CategoryScreen()
            在MTK中有各種類型的屏幕顯示。它們彼此的結(jié)構(gòu)一樣,區(qū)別就在于之間的標題,按鍵,以及屏幕上面的一些控件是否相同。
            ShowCategoryXScreen(Argument list)
            經(jīng)常用到的這個函數(shù),由應(yīng)用程序調(diào)用。參數(shù)列表里面指明了該屏幕中左軟鍵和右軟鍵,標題顯示等等。還可以指明一些特殊的元素如文本輸入框,列表項。
            以下面的函數(shù)為例:
            void ShowCategory221Screen(        U16                        title,
                                                                                            U16                        title_icon,
                                                                                            U16                        left_softkey,
                                                                                            U16                        left_softkey_icon,
                                                                                            U16                        right_softkey,
                                                                                            U16                        right_softkey_icon,
                                                                                            gdi_color        background_color,
                                                                                            FuncPtr                redraw_content_callback        )
            title 用于指明該屏幕上的標題欄的名稱。
            title_icon 該標題欄所用到的圖標
            left_softkey 左軟鍵的字符串ID
            left_softkey_icon 左軟鍵的圖標ID
            right_softkey右軟鍵的字符串ID
            right_softkey_icon 右軟鍵的圖標ID
            background_color 背景顏色
            redraw_content_callback 用于重畫的回調(diào)函數(shù)指針,一般在主題更新時候由框架調(diào)用,一般設(shè)置為0
            6 關(guān)于timer和循環(huán)
            在MTK中也可以實現(xiàn)類似于J2ME中的循環(huán)。
            首先編寫一個函數(shù),用于規(guī)定的延遲時間到期時候的調(diào)用。例如
            Cyclic_timer();
            然后調(diào)用函數(shù) pixtel_UI_start_timer(500,cyclic_timer);
            需要注意的是,我們需要將pixtel_UI_start_timer(500,cyclic_timer);寫入到cyclic_timer()中,這樣,每當500毫秒到期時候,函數(shù)將調(diào)用自身,再次進入到該函數(shù),從而實現(xiàn)循環(huán),我們在里面可以添加條件判斷,來實現(xiàn)跳出循環(huán)等工作。


            本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/chenzhp/archive/2009/03/14/3990504.aspx

            久久国产影院| 久久狠狠高潮亚洲精品| 久久久人妻精品无码一区| 色偷偷88欧美精品久久久| 精品熟女少妇AV免费久久| 久久97精品久久久久久久不卡| 久久强奷乱码老熟女| 国产综合久久久久久鬼色| 欧美午夜精品久久久久久浪潮| 精品国产一区二区三区久久久狼 | 国产精品久久久久无码av | 日本高清无卡码一区二区久久 | 亚洲午夜久久久影院伊人| 伊人色综合久久| 久久精品国产亚洲av麻豆色欲| 久久成人国产精品一区二区| 久久综合狠狠综合久久| 亚洲欧美精品一区久久中文字幕 | 潮喷大喷水系列无码久久精品| 久久亚洲AV无码西西人体| 亚洲狠狠久久综合一区77777| 亚洲va久久久噜噜噜久久天堂| 香蕉久久夜色精品国产尤物| 色综合久久综精品| 94久久国产乱子伦精品免费| 91精品国产91久久久久福利| 久久精品中文字幕无码绿巨人 | 中文字幕无码免费久久| 久久综合色之久久综合| 色综合久久久久网| 99久久国产主播综合精品| 欧美伊香蕉久久综合类网站| 精品久久久久久中文字幕| 久久91精品国产91久久小草| 99久久久国产精品免费无卡顿| 亚洲av日韩精品久久久久久a| 久久久午夜精品| 人妻少妇久久中文字幕| 狠狠色丁香久久婷婷综合五月| 77777亚洲午夜久久多喷| 久久亚洲精品中文字幕三区|