RSS

MicroWindows体系结构及应用程序接口

来源:深圳电子技术网 作者:不详 时间:2007-03-03 Tag: 点击:

GdAllocRegion 创建一个区域
GdDestroyRegion 删除一个区域
GdCopyRegion 复制区域
GdUnionRectWithRegion 将一个矩形和一个区域合并
GdIntersectRegion 在两个区域的交集处创建一个新区域
GdSubtractRegion 在两个区域的差集处创建一个新区域
GdUnionRegion 在两个区域的并集创建一个新区域
GdXorRegion
(2)裁剪
图形引擎中有一个由图形操作定义的由一些矩形组成的裁剪区,如果点被包含在这些裁减区内就会被绘制出来。有两个裁剪算法:devclipl.c针对静态矩形数组,devclipc2.c针对新的动态数组。GdSetClipRects是唯一删除区域并指定后来的图形操作的入口点。所有的绘图程序都要调用两个附加程序来决定是否画图。GdClipPoint获取屏幕坐标的(x,y)点,如果该点被绘制出来的话,则返回TRUE。GdClipArea获取屏幕上方最左的或者下方最右的点并回以下值:CLIP_VISIBLE(指定区域在原区域内)、CLIP_INVISIBLE(指定区域不在原区域内)、CLIP_PARTIAL(指定区域部分在原区域内)。
(3)画线
MicroWindows使用GdPoint画点,GdLine画线。画线时使用当前的前景色(DgSetForeground指定)。有两种绘制模式:MODE_SET和MODE_COR。
(4)矩形、圆和椭圆以及多边形
矩形、圆和椭圆的绘制分别调用GdRect和GdEllipse来实现。MicroWindows中定义了一个包含(x,y)多边形顶点的数组来表示多边形,调用GdLine函数画线,把这些点相连就可以实现画多边形。绘制时使用前景色。
(5)区域填充
MicroWindows中使用GdFillRect函数填充矩形区域,填充使用前景色。填充圆和椭圆使用GdFillEillpse函数,填充多边形使用GdFillPoly函数。填充的实现是在屏幕驱动中不断地调用GrawHorzLine函数。
(6)字体和文本输出
MicroWindows支持可变/不可变字体。文本输出时使用GdSetFont定义输出使用的字体,再调用GdText函数输出。
(7)颜色模式和调色板
MicroWindows支持RGB颜色,颜色匹配,真彩和调色板显示,3D效果的显示。
(8)图片绘制
MicroWindows支持两种格式的图片。单色图片用IMAGEBITS结构(1表示前景色,0表示背景色)来定义,绘制时调用GdBitmap程序。彩色图片可以分别定义为1、4、8 bpp的模式,用IMAGEHDR结构来表示。绘制时调用GdDrawImage函数。
(9)映射
映射功能在实虚屏的转换中使用。GdBlit可以实现上层的API将虚拟内存存复制到显示屏上,复制时调用GdBlit函数。
3 MicroWindows API
MicroWindows API中的基本通信机制是消息机制。一个消息机制中包含了message number和两个参数:wParam、lParam。Message被存放在应用程序的message-queue中,GetMessage函数将其取出。WM_GHAR针对键盘输入,WM_LBUTTONDOWN针对鼠标键被按下。窗口创建时使用WMCREATE,删除时使用WM_DESTROY。DispatchMessage将消息传到处理程序的窗口。
以下是处理消息的有关函数:
SendMessage 将消息传到窗口
PostMessage 将消息传到消息队列
PostQuitMessage 传递WM_QUIT消息到消息队列读时中断程序
GetMessage 得到消息后结束中断
TranslateMessage 将按键按下/弹起的消息传到WMCAR
DispatchMessage 将消息传到为它分配的窗口程序
3.2 窗口的创建和删除
RegisterClass 定义新的窗口类型并启动窗口程序
UnRegisterClass 删除窗口类型
CreateWindowsEx 按窗口类型创建一个窗口
DeatroyWindow 删除一个窗口
窗口创建后产生WM_CREATE消息,删除产生WM_DESTROY消息。
3.3 窗口的显示、隐藏和移动
ShowWindow函数指定窗口是否可见。MoveWindow改变窗口的位置和大小。窗口位置改变时,产生WM_MOVE消息;窗口大小改变时,产生WM_SIZE消息。
3.4 窗口的绘制
窗口绘制时产生WM_PAINT消息。窗口的标题栏自动绘制,设置属性使用SetWinowText,察看属性使用GetWindowText。
(1)实虚屏切换
窗口绘制使用的坐标系统是屏幕上的绝对坐标系,MicroWindows API使用的是相对坐标系。GetClientRect和GetWindowRect函数各自返回虚屏和实屏的坐标值。
(2)Device Contexts
调用图形API之间要包含device context。它指定系统所使用的窗口和坐标系,同时还定义系统默认的前景色和背景色。
GetDC用来包含device context。在画标题栏还需调用GetWindowDC。GetDCEx定义子/兄弟窗口的裁剪操作。绘制结束时调用ReleaseDC释放DC。
(3)图形API
见网络补充版(http://www.dpj.com.cn)
3.5 其它实用函数
WndSetDesktopWallpaper 设置桌面的背景图片
WndSetCursor 为窗口创建光标
WndRaiseWindow 拉伸窗口
WndLowerWindow 缩小窗口
WndGetTopWindow 返回最上层窗口的句柄
Sleep 睡眠
(1)设置窗口中心
WM_SETFOCUS和WMKILLFOCUS分别用于获取/删除中心。GetActiveWindow返回ancestor窗口,GetDesktopWINDOW返回当前桌面窗口的句柄。
(2)鼠标捕获
WM_MOUSEMOVE用来表示鼠标被移动。SetCapture获取全部的鼠标移动信息,ReleaseCapture返回到程序,GetCaptrue返回到捕获区域。
(3)区域管理
SetRect 定义一个矩形结构
SetRectEmpty 定义一个空矩形
CopyRect 复制一个矩形
IsRectEmpty 为空矩形时返回TRUE
InflateRect 放大矩形
OffsetRect 移动矩形
PtInRect 判断点是否在矩形区内
4 Nano-X API
(1)Client/Server模型
Nano-X允许应用程序使用Client/Server网络协议或本地UNIX Domain Socket,可让几个应用程序运行在嵌入式设备或远端主机上,并连接到Server上显示出来。
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载