亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多級鏈表實現(xiàn)MiniGUI屬性頁控件設(shè)計

        2011-03-06 09:17:54
        通信技術(shù) 2011年7期
        關(guān)鍵詞:鏈表數(shù)據(jù)結(jié)構(gòu)控件

        鄒 瑛

        (四川司法警官職業(yè)學(xué)院 司法信息管理系,四川 德陽 618000)

        0 引言

        MiniGUI 是一種面向嵌入式或?qū)崟r系統(tǒng)圖形用戶界面支持系統(tǒng)[1],可以運行在任何POSIX 兼容平臺上,是一種面向?qū)崟r嵌入式系統(tǒng)的輕量級圖形界面支持系統(tǒng), 具有小巧、高效、可移植性好等特點[2]。

        在嵌入式Linux下使用有時需要使用自定義的鍵盤對分頁內(nèi)子控件的鍵盤聚焦消息的處理不靈活,對于要求精美外觀的GUI系統(tǒng)該控件就必須重新設(shè)計。對此這里設(shè)計了自定義屬性頁控件以滿足多分頁內(nèi)子控件對鍵盤和鼠標(biāo)事件的消息處理和GUI外觀的重新繪制。

        1 屬性頁控件數(shù)據(jù)結(jié)構(gòu)分析

        在功能上屬性頁支持多分頁顯示,每個分頁按鈕對應(yīng)一個分頁,當(dāng)點擊屬性頁上某個分頁按鈕,就會將當(dāng)前顯示分頁隱藏,將當(dāng)前顯示分頁重定向到最新點擊的分頁,然后再次顯示當(dāng)前分頁以此實現(xiàn)分頁的切換。

        如圖1所示,采用交叉鏈表設(shè)計了屬性頁數(shù)據(jù)結(jié)構(gòu),所有分頁形成一級雙向鏈表(橫向),每個分頁下還擁有子控件二級雙向鏈表(縱向)。默認第一個分頁為活動分頁,其它分頁為隱藏狀態(tài),當(dāng)調(diào)用消息接口發(fā)送切換分頁的消息后,控件將把當(dāng)前分頁全部子控件(按子控件鏈表遍歷)隱藏,然后把要切換的目標(biāo)分頁全部子控件顯示出來,并更改目標(biāo)分頁索引為當(dāng)前活動分頁索引。其結(jié)構(gòu)體代碼實現(xiàn)如下:

        圖1 屬性頁數(shù)據(jù)結(jié)構(gòu)示意

        2 屬性頁控件消息接口定義

        屬性頁數(shù)據(jù)結(jié)構(gòu)的定義是為更好的管理其子控件和繪制控件外觀,都在內(nèi)部使用,無需公布給用戶,所以該結(jié)構(gòu)體定義可以放入控件實現(xiàn)頭文件PageControl_impl.h中,因此該消息接口定義可以放在PageControl.h文件中,控件的實現(xiàn)代碼PageControl.c中包含以上兩個頭文件,但用戶只需包含PageControl.h頭文件即可使用該控件。如下是公布在PageControl.h頭文件的主要接口消息定義:

        通過以上消息接口,即可將隨時把一些控件添加到一個新的分頁去顯示,也可以隨時銷毀一個分頁。

        3 屬性頁控件消息處理流程

        定義好屬性頁控件的數(shù)據(jù)結(jié)構(gòu)后,需要分析其控件實現(xiàn)的消息處理流程才能定義其需要公布的消息處理接口[3]。如圖2所示,屬性頁控件在創(chuàng)建時先要處理MSG_CREATE消息,先創(chuàng)建控件結(jié)構(gòu)體變量pData,把該結(jié)構(gòu)體變量地址記錄到控件的附加數(shù)據(jù)成員pCtrl->dwAddData2里,就可以從pCtrl->dwAddData2中得到其指針[4];控件在初始化時調(diào)用函數(shù)GetWindowStyle(hwnd)來獲取該控件的類型風(fēng)格(dwStyle)。為了提高繪圖性能一般在非MSG_PAINT消息的處理中,可以直接調(diào)用GetClientDC獲取屬性頁控件HDC句柄,把有變化的區(qū)域進行繪制。當(dāng)屬性頁控件被彈出窗口遮擋、其它消息中調(diào)用InvalidateRect函數(shù)或控件初始化時系統(tǒng)會發(fā)給該屬性頁控件一個MSG_PAINT消息[5],此時需要全面繪制。

        圖2 屬性頁控件消息處理流程

        4 結(jié)語

        文本使用交叉鏈表設(shè)計并實現(xiàn)了自定義屬性頁控件。將內(nèi)部數(shù)據(jù)結(jié)構(gòu)和外部消息接口分開,方便用戶使用。為了提高繪圖性能盡可能減少使用InvalidateRect函數(shù)產(chǎn)生MSG_PAINT消息,實現(xiàn)局部變化局部處理,這樣不但可以增加控件外觀的精美顯示,也不降低控件的性能。

        [1] 北京飛漫軟件技術(shù)有限公司.MiniGUI 編程指南[EB/OL].(2003-10-03)[2011-02-13].http://read.pudn.com/downloads160/sourcecode/embed/720762/編程指南.pdf.

        [2] 北京飛漫軟件技術(shù)有限公司.MiniGUI 用戶手冊[EB/OL].(2003-10-11)[2011-02-13].http://read.pudn.com/downloads143/doc/622754/MiniGUIV2.0.pdf.

        [3] 陳周國,王勝銀,付國晴.基于Linux QT技術(shù)的遠程監(jiān)控GUI設(shè)計[J].通信技術(shù),2009,42(12):234-236.

        [4] 王文啟,韓秀玲,孫波.基于MiniGUI的多進程圖形用戶界面的研究[J].微計算機信息, 2007,23(08):78-80.

        [5] 王蕾,陳功新,陸玲,等.基于ARM-Linux的嵌入式系統(tǒng)GUI開發(fā)研究[J].微計算機信息,2009,23(29):122-124.

        猜你喜歡
        鏈表數(shù)據(jù)結(jié)構(gòu)控件
        基于二進制鏈表的粗糙集屬性約簡
        跟麥咭學(xué)編程
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機制
        “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
        高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
        中國市場(2016年45期)2016-05-17 05:15:48
        鏈表方式集中器抄表的設(shè)計
        電測與儀表(2014年1期)2014-04-04 12:00:22
        TRIZ理論在“數(shù)據(jù)結(jié)構(gòu)”多媒體教學(xué)中的應(yīng)用
        《數(shù)據(jù)結(jié)構(gòu)》教學(xué)方法創(chuàng)新探討
        河南科技(2014年5期)2014-02-27 14:08:57
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        夜夜爽无码一区二区三区| 日本中文字幕一区二区高清在线| 久久精品国产99国产精2020丨| 日本一区二区不卡视频| 香蕉亚洲欧洲在线一区| 综合激情中文字幕一区二区| 国产一区二区三区探花| 人妻人妇av一区二区三区四区| 日韩成人精品日本亚洲| 亚洲AV无码中文AV日韩A| 久久精品人妻嫩草av蜜桃| 国产另类人妖在线观看| 91偷拍与自偷拍亚洲精品86| 欧美巨鞭大战丰满少妇| 18禁裸男晨勃露j毛网站| 国产真实乱对白精彩久久老熟妇女| 国产无遮挡裸体免费视频| 天天爱天天做天天爽| 深夜国产成人福利在线观看女同| 久久亚洲精品成人综合| 女同av一区二区三区| 国产无套内射又大又猛又粗又爽| 少妇性bbb搡bbb爽爽爽| 欧美性猛交xxxx乱大交丰满| 亚洲日韩一区二区一无码| 国产激情一区二区三区在线蜜臀| 在线观看免费视频发布白白色| 日本一区二区三区视频免费在线| 国产综合在线观看| 免费a级毛片出奶水| 无码人妻系列不卡免费视频| 国产三级在线观看不卡| 婷婷色精品一区二区激情| 精品无码一区二区三区爱欲| 午夜毛片不卡免费观看视频 | 国内精品国产三级国产| 末成年人av一区二区| 放荡的少妇2欧美版| 色av综合av综合无码网站| 亚洲高清有码在线观看| 国产亚洲精品成人av在线|