详述嵌入式系统下Microwindows的实现

http://tech.ddvip.com   2007年03月12日    社区交流

本文详细介绍详述嵌入式系统下Microwindows的实现

  在配置和检测了Microwindows初始安装程序以后,用“make install”指令来创建Nano-X 服务器、客户库和头文件,然后键入下述字符编译、链接和运行示例程序:

gcc sample.c –o sample –lnano-X
nano-X & sleep 1; sample

  键入escape将退出服务器。

  GrOpen()函数用于打开一个与正在运行中的Nano-X 服务器的连接,如果服务器没有运行,则返回-1值,应用程序此时显示错误信息并退出。GrNewWindow函数在屏幕(20,20)的位置上创建一个100x60像素的窗口。它的边界大小为4像素宽,兰边白底。然后调用GrMapWindow函数将刚刚创建的窗口在屏幕上显示出来。这是因为有时生成一组窗口很方便,但是要根据用户指令在屏幕上显示和移动。在屏幕显示窗口以后,程序进入“event loop”状态,等待下一个鼠标或键盘事件。

  Expose event

  更为复杂的Nano-X应用程序基本上遵从上述同样的逻辑结构。首先生成窗口,接着显示出来,然后程序进入“event loop”等待用户发出指令。在该例中并没有真正写出明确的代码在窗口上画出东西。在实现这一点之前,首先应当理解关于Expose event的概念。Nano-X API提供一套完整的在屏幕上划线、写字、画圆和显示图像的函数。当一个窗口被遮住时,Microwindows剪辑该窗口图画并保存下来,当被遮掩部分再次需显示时,可以重新刷新以显示以前的内容。刷新发生时,服务器首先向应用程序发送一个Expose event,要求重新绘制窗口中的内容。Microwindows在首次显示窗口后就发出一个expose event指令,这样重新绘制时使用的代码和原来显示时所用的代码完全一样,所以可以实现在原先位置上显示同样的内容。下例是用该机制显示一些文字,并在窗口移动后重新显示出来(sample2.c).

作者:吴升艳 胡冰 岳春生    责编:豆豆技术应用

正在加载评论...