日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
摘 要:GUI设计在嵌入式系统设计中占据着举足轻重的地位,MiniGUI为一种适合于嵌入式系统的、功能强大的GUI,本文介绍了基于ARM和Linux的MiniGUI移植方法以及在ARM开发板上实现普通手机操作界面的设计过程,并提出了相应功能的实现方法,给出了设计的效果。
关键词:嵌入式系统;ARM;Linux;MiniGUI
1、引言
目前,嵌入式应用非常广泛。嵌入式系统由硬件和软件两大部分组成。硬件方面的主要核心是嵌入式处理器,以ARM为核的32位RISC处理器是中高端嵌入式应用的代表。软件方面一般由嵌入式操作系统和应用软件组成。嵌入式操作系统种类众多,比如Linux、uCLinux,其具有开放源码、免费授权和资源丰富等优点,备受开发者的青睐。应用软件根据产品需求会用到图形界面(GUI)、文件系统(FS)、网络(TCP/IP协议栈)等软件功能,其中,GUI对于提高人机交互友好性,易操作性具有很好的效果,而随着图形显示设备的广泛应用,目标产品对GUI的需求越来越多。
2、系统环境和构架
系统实现环境采用SmartARM2200开发板及运行在ARM上的uCLinux操作系统。
SmartARM2200开发板:CPU型号为LPC2210,内核规格为ARM7TDMI-S,60M,支持uCLinux操作系统
InitMainWindow(); // 设置各项属性,并建立主窗口
ShowWindow(hMainWnd, SW_SHOWNORMAL); // 显示主窗口
2)消息循环
while(GetMessage(&Msg, hMainWnd))
{ TranslateMessage(&Msg); DispatchMessage(&Msg);}
3)填充背景色和显示汉字
LoadBitmapFromFile( HDC_SCREEN, &mainskin, “res/skin2.bmp”);
FillBoxWithBitmap(hdc, 0, 0, MWINDOW_RX, 283, &mainskin);
TextOut(hdc, 30, 295, “信息”); // 显示文字
其中资源图片一般在MiniGUI建立主窗口的过程中发送MSG_CREATE消息时加载(逻辑字体也在此时创建),而背景色的填充和汉字的显示则是在窗口初始显示,发送MSG_PAINT消息时绘制,而且必须在指定的设备上下文中操作:
hdc = BeginPaint(hWnd); // 获得设备hdc
EndPaint(hWnd, hdc); // 释放设备hdc
4)时间操作
在MSG_CREATE消息时,启动1s的定时器:SetTimer (hWnd,ID_TIME,100);在定时器消息MSG_TIMER中获取当前时间,并显示出来。
4.2.2图形选择界面的功能实现
当有键盘按下时,系统会发送MSG_KEYDOWN,处理此消息时,通过判断按键方向,确定当前选择的图标,当选择图标发生变化时,即用背景色重绘原有边框,用另一种颜色绘制新的边框,并将标签文字重写在右下角的位置。
4.2.3电话本管理模块完成的功能:
1) 显示电话本名单,通过上下键移动可选中不同的名单,同时显示其电话号码;
2) 选中一个名单时,可以查看其详细信息(姓名,手机,固话,住址,排序,类型等),并且可以编辑修改;
3) 当选中“新建”时,可以创建一个新的电话名单和其详细信息;
4) 姓名和住址的编辑支持中文拼音输入法,通过2~9按键上标注的26个字母组合,可以输入常见的汉字。
电话本管理模块的实现方法如下:
1)电话本列表框实现:
{CTRL_LISTBOX,//列表框控件定义:
WS_VISIBLE WS_VSCROLL WS_BORDER LBS_NOTIFY , //LBS_SORT,// L
BS_AUTOCHECKBOX,1,0,238,263,ID_PhoneList,”“,0,}
在初始化和更新条目时需要填充列表框,清空列表框和填充函数分别为:
SendDlgItemMessage(hWnd,ID,LB_RESETCONTENT,0,0);
SendDlgItemMessage(hWnd,ID,LB_ADDSTRING,0,
(LPARAM)myphonenote北京飞漫软件技术有限公司.MiniGUI编程指南. 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/242685.html