| | | 如何在界面中显示位图 | | 2001-11-09·
·中文··yesky
| 一般有很多种方法在一个窗口中显示位图。最常用的几种如下:
将位图作为一个元素包含在窗口中,然后显示这个窗口。在保证上下文的相对位置不变,和始终是这个位图的情况下,这是最常用的一种办法。 将位图作为一个独立的资源,在程序的控制下,在规定的时间和位置将图片加载到窗口中。这种方式常常用于那些根据实际情况必须更换不同图片,以及制作慢速动画的场合。 使用Palm OS的作图功能,在必要的情况下,直接将像素写到屏幕上。这种方式适用于那些需要动态生成位图的场合。 直接操作Video存储器。在需要制作高速,流畅的动画是,您将不得不使用这种方式。而且,这种方式能够实现诸如淡入淡出、融合之类的特效。但是必须注意到,要正确实现这种方式,难度比较大。尤其是当前的Palm显示技术变化得很快。像目前的Palm色彩位深度的升级换代几乎是每6个月一次。有可能到了明天,直接操作Video存储器的技术会被Screen Resolution或是其它什么技术代替。
方式1和方式3是不需要什么太高深的技术,这里就不多说了。而方式4则超出了这篇文章的讨论范围。我们在这里提供一下关于方式2的程序范例:
boolen DrawBitmap (int iResourceID)
{
VoidHand hResource;
if ((hResource = DmGet1Resource(bitmapRsc, iResouceID)) != 0)
{
BitmapPtr pzBitmap = (BitmapPtr) MemHandleLock(hResource);
WinDrawBitmap(pzBitmap,x,y);
MenPtrUnlock(pzBitmap);
DmReleaseResource(hResource);
return(true);
}
else
{
file://找不到位图文件的错误陷阱
return(false);
}
} |
对于程序的说明:
首先调用DMGet1Resource()函数来获得一个资源的句柄。
然后调用MemHandleock()函数锁定位图资源的存储数据空间,返回指向该数据空间的位置指针。
然后调用WinDrawBitmap()函数来绘制位图,这里需要一个指向位图的指针。
然后用MemPtrUnlock()函数释放那个被指针锁定的位图的存储空间。然后用DmReleaseResource()函数释放资源。
| | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|