WinCE.net下图形用户界面的开发

来源 :电脑学习 | 被引量 : 0次 | 上传用户:weiyuanbin
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:讨论了一种可以节省内存的绘制窗体背景界面的方法:实现了窗体无效后蔓绘先前背景的功能。
  关键词:图形用户界面 WinCE.net NET精简框 嵌入式系统
  
  1 .NET精简框中访问图形对象的方法
  
  在显示屏上绘图,.NET精简框程序必须拥有Graphics类的一个实例。对.NET精简框类的研究发现,有两种方法可以访问Graphics对象:一种方法是调Paint事件,通过Paint事件中提供的PaintEventArgs参数的属性访问Graph-ics对象。它由系统发出,主要处理窗体中的绘图,并通知一个窗体其内容需要重绘;另一种方法是调用CreateCraphics函数,利用调用返回的Graphics对象绘图。虽然Create-Graphics方法名称表示创建了一个Graphics对象,但事实上并非如此。它只是向窗体“租用”了Graphics对象,完成调用Graphics对象后必须调用Dispose方法返回对象。
  
  2 WinCE操作系统下基于VB.NET的窗体背景界面实现方法
  
  在桌面系统中为窗体设计一个漂亮的界面,可以直接加入Picturebox控件,再将其属性中的Image项修改为需要的图片。采用这种方法,程序启动时,图片就显示在背景窗体上,但读取一幅图片,需要消耗大量的内存空间。基于VB.NET的界面程序,启动时本身需求的内存空间就非常可观,如果背景图片所需内存空间过大,可能会导致程序挂起。另外,考虑嵌入式系统频率低、内存少的自身特性,编写好的应用程序,应尽量节省内存空间。制作背景时,我们采用的方法是调用绘图函数。
  绘制窗体背景通常有两种方法。一种是使用窗体事件Form_Paint:另一种是使用重绘事件Onpaint。它们都提供PaintEventArgs参数,利用该参数的属性访问Graphics对象,编写绘图代码可以绘制窗体背景。由于这两个Paint事件都是由系统发出的,当窗体创建、隐藏、放大或缩小时,它们都会自动调用Paint函数中的代码重绘。值得注意的是:绘制窗体背景时,不能调用事件Form_Load。调用Form_Load事件绘制的窗体背景在窗体中一闪而过,不能长时间停留,达不到显示的效果。
  OnPaint函数定义格式为Protected Overrides Sub On-Paint(ByVal e As PaintEventArgs)。Form_paint函数定义格式为Private Sub Form_Paint(ByVal sender As Obiect。By-Val e As System.Windows,Forms,PaintEventArgs)HandlesMyBase,Paint。利用e参数的属性访问Graphics对象,可以绘制线条、多边形和各式文字。采用这种方法绘制的窗体背景所占用的内存空间比读取整幅图片时少得多,正好符合嵌入式系统内存少的特点。
  
  3 多个背景的窗体无效后重绘先前背景的实现方法
  
  显示屏是多任务、多线程操作系统WinCE的共享资源。为了避免程序间的冲突,同一时间系统只允许向显示屏发出的一个Paint绘图事件。创建、隐藏、滚动、放大或缩小窗体和打开新文件都会使原来的窗体无效。窗体无效后,系统自动调用Paint函数重绘窗体背景。但对于多个背景的窗体,窗体无效后,如何使Paint函数重绘无效前的背景是我们要解决的问题。
  我们通过在OnPaint函数中设置旗帜变量实现了窗体无效后重绘先前背景功能。方法如下:
  (1)创建一个图形对象。定义格式如下:Dim gp A8Graphics=CreateGmphics():
  (2)在主窗体中定义一个旗帜变量。根据不同情况设置特定枚举值:
  (3)使用条件语句判断绘图代码。符合哪个枚举值,就绘制相应的背景。
  下面举例说明具体的实现方法。是一个窗体结构示意图。其中虚箭头表示绘制窗体背景事件,实箭头表示窗体无效事件。窗体无效后,绘制哪一个背景图是我们要解决的问题。三个虚箭头分别表示绘制声音录制、波形显示和频谱显示的背景图。我们在主窗体中设定一个flag变量,标识主窗体无效前的背景图片。录制声音时,flag的值置1;显示波形时,flag的值置2:显示频谱时,flag的值置3。当主窗体调用打开保存文件、输入信息或显示结果事件后,主窗体无效。这时系统将自动调用OnPaint函数,OnPaint函数根据flag的值,绘制窗体无效前的相应背景。
  
  4 结束语
  
  随着嵌入式系统应用领域的不断扩大,嵌入式系统开发需要考虑图形用户界面问题。我们在WinCE系统上开发语音频谱分析仪时,需要处理大量的图形绘制问题。根据我们的实践经验,总结出了一些实现图形用户界面的方法。通过调用paint函数绘制窗体背景,有效地节省了内存空间;通过在OnPint函数中设置旗帜变量实现了窗体无效后重绘先前背景的功能。
其他文献
水天中先生在1985年写过一篇短文,题目是《迎接美术理论的春天》,刊登在1986年1月20日的《中国美术报》上。他在文章中写道:“也许是因为三十多年来,预报文艺的春天即将到来的通知发得太多,以致人们对于世界上是否会有真正的春天,也产生了怀疑。但改革和开放政策确实改变了中国社会的气候,大好形势已经泽及文学艺术。美术史、美术理论和美术批评的迅速发展,预示着春天的来临,而最能传达春消息的‘物候’,便是青
◆词汇、短语大看台:  【易混词语辨析】  1. say, speak, talk  (1) say, speak和talk均有“说”之意,但用法不同。  say一般作及物动词,强调说话的内容。例如:  Tom says, “I like art.”  (2) speak一般作不及物动词,指说话的能力,不强调说话的内容。speak也可作及物动词,其后常接表示语言的名词作宾语。例如:  The ba
摘 要:介绍使用C#编写网络扫描器的原理和实现过程。  关键词:C# 网络扫描 网络嗅探 局域网扫描工具    “注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
摘要:音字转换是汉语言信息处理的一个重要方面,在语音识别、汉语拼音输入等方面都有广泛的的应用。本文首先回顾了词树的理论知识,然后对词树进行求解,最后对词树进行剪枝,随之,对产生的多音字进行处理。基于上面的理论,提出了一种基于语言模型实现音字转换的高效解码算法,这种算法涉及到零概率重估、路径剪枝和多音字处理等多项技术,实验结果表明这种算法可以达到97.78 %的准确率,与以往的算法相比,效果比较显著
Part One 听力部分(20分)    Ⅰ. 听录音,选出你所听到的图片,读一遍。(每小题1分,共5分)    1._________2. _________3._________4._________ 5._________  Ⅱ. 听五段小对话,找出问题的正确答语。每段对话读一遍。(每小题1分,共5分)  ( )6. A. She went to the mountains.B. She
展览时间:2014.02.21 至03.19  展览地点:今日画廊  王垂毕业于“文革”后首届中央美术学院油画系研究生班,与葛鹏仁、谷刚、张颂南、孙景波、克里木、汤沐黎、张明骥、陈丹青等九人同为老一辈著名艺术大师吴作人,侯一民、林岗、靳尚谊先生的关门弟子。王垂在西方生活多年,他潜心钻研,好学勤奋,广取博采对油画艺术的传统进行了深入的研究,结合他扎实的基本功和厚重的民族文化底蕴,融会贯通,创作颇丰。
世人多知姚华与陈师曾要好,陈师曾绘画,常有姚华题写诗词,于是便形成了“陈画姚题”的认知观念,而对与姚华、陈师曾经常在一起,几乎是“铁三角”关系的周大烈则关注不够。  周大烈(1862—1934),湖南湘潭人,字印昆,别号夕红楼,又号十严居,名其居为乐三堂。周大烈生长于官宦世家,书香门第。十九岁在本乡教书,门生众多,颇有声望。而立之年受聘于长沙第一师范学校,名闻省县。1903年,周大烈在陈师曾父亲陈
适合年龄  幼儿园 小学6年級  材料准备  冰球、食盐、色素、卡纸、画笔  冰球制备方法  准备几个气球,将气球装满水并打结,再将其放入冰箱冷冻室;一段时间后,气球中的水凝结为冰,就是冰球了。用不同形状的气球和不同颜色的水可以制作出各种各样的冰块,如用橡皮手套就可以制作出手形冰块。  研究方法  观察冰球,思考以下问题  它摸起来感觉怎么样?  它有多冷?  它的温度是多少?  这个冰球有多大?
[摘要] 传为阎立本所绘的《萧翼赚兰亭图》存世有多本,关于它们的年代及作者问题一直争议不断。然而,此画所涉及的题材内容却鲜有学者关注。实际上,《萧翼赚兰亭图》很可能并非是针对《兰亭记》文本进行的图像表达,而是以唐五代的“禅会图”为源头,糅合了“问禅图”的某些要素,又在流传过程中被宋人所误读。到了明代,《萧翼赚兰亭图》又借鉴了“水陆缘起图”的人物特征,再一次发生了视觉化衍变。  [关键词] 萧翼 阎
【重点单词点将台】  1. mindv. 介意  mind常用于疑问句或否定句中,mind后也可接动名词短语作宾语,但不能接动词不定式作宾语,也不能接双宾语。例如:  I don’t mind it. 我不介意。  Would you mind my smoking here?你介意我在此抽烟吗?  2. kingn. 君主;国王  king常译为“君主;国王”,但是当king大写首字母时就成了姓