999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2011-03-06 09:17:54
通信技術(shù) 2011年7期
關(guān)鍵詞:嵌入式定義設(shè)計

鄒 瑛

(四川司法警官職業(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è)計
瞞天過海——仿生設(shè)計萌到家
搭建基于Qt的嵌入式開發(fā)平臺
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
修辭學(xué)的重大定義
山的定義
主站蜘蛛池模板: 久久精品中文字幕免费| 国产精品护士| 国产欧美成人不卡视频| 精品国产成人av免费| 欧美在线视频a| 日韩欧美91| 久久久久免费看成人影片| 精品欧美视频| 高清欧美性猛交XXXX黑人猛交| 国产女人爽到高潮的免费视频| 亚洲第一极品精品无码| 精品人妻AV区| 97超爽成人免费视频在线播放| 日本爱爱精品一区二区| a天堂视频| 亚洲天堂777| 亚洲天堂.com| yjizz国产在线视频网| 国产一区二区丝袜高跟鞋| 成年A级毛片| 伊人福利视频| 国产视频欧美| www.91中文字幕| 99久久精彩视频| 国产免费黄| 国产在线98福利播放视频免费| 亚洲精品在线91| 久久狠狠色噜噜狠狠狠狠97视色 | 欧美日韩导航| 国产成人亚洲日韩欧美电影| 国产精品午夜福利麻豆| 欧美中文字幕第一页线路一| 人妻中文久热无码丝袜| 国产高清在线观看| 欧美色综合网站| 午夜老司机永久免费看片| 国产高清色视频免费看的网址| 国内精品视频在线| 尤物精品视频一区二区三区| 免费国产好深啊好涨好硬视频| 亚洲精品少妇熟女| 国产精品深爱在线| 欧美在线三级| 自慰高潮喷白浆在线观看| 这里只有精品在线播放| 精品视频第一页| 亚洲国产日韩在线观看| 中日韩欧亚无码视频| 国产麻豆精品在线观看| 欧美成人综合视频| 高潮爽到爆的喷水女主播视频 | 国产福利小视频高清在线观看| 亚洲天堂网在线播放| jizz国产视频| 中文字幕调教一区二区视频| 992tv国产人成在线观看| 99青青青精品视频在线| 欧洲成人在线观看| 玩两个丰满老熟女久久网| 久久国产精品77777| 五月婷婷丁香综合| 欧美日韩资源| www.av男人.com| 91久久国产热精品免费| 婷婷综合亚洲| 亚洲色图欧美激情| 日韩一区二区三免费高清| 香蕉伊思人视频| 欧美成在线视频| 青青国产成人免费精品视频| 精品夜恋影院亚洲欧洲| 国产女人在线| 国产成人精品亚洲日本对白优播| 香蕉国产精品视频| 午夜毛片免费看| 都市激情亚洲综合久久| AV天堂资源福利在线观看| 人妻无码一区二区视频| 久久综合一个色综合网| 亚洲精品自产拍在线观看APP| 日韩国产精品无码一区二区三区| 亚洲午夜国产精品无卡|