Powerbuilder中利用API实现动画特效

Powerbuilder中利用API实现动画特效
摘要:本文通过在Powerbuilder中调用Windows API函数,实现任意图片的放大及任意图片从正面逐渐翻转到背面的功能 
  关键词:内存设备描述表 显示器设备描述表 API 
  一、问题的提出 
  Powerbuilder是一个面向对象的开发大型数据库的图形化的前端开发工具,其优异的性能越来越受到广大开发人员的欢迎。然而,在绘图方面却
显不足。其图片的显示是主要靠picture控件来完成的,由于不象c++builder等工具那样具有画布功能,要实现动画特效,单靠Picture 控件本身的属
性与方法来实现,只能完成基本的、简单的动画,且效果不理想,容易产生闪烁现象。我们在开发中为了较好的实现动画特效,调用了Windows API函
数,结果不仅克服了闪烁现象,而且还能实现较复杂的动画功能。 
  二、设计思想 
  我们知道windows图形设备接口为windows应用程序提供了屏幕及打印机的设备无关接口,而windows为应用程序提供设备无关性所使用的基本工具
是设备描述表〔DC〕。为了显示位图,要将位图加到显示器设备描述表上。程序通常不能直接在设备描述表上绘图,用CreateCompatibleDC函数创建
与指定设备兼容的内存设备描述表,每当程序使用位图时,程序首先把位图放在内存设备描述表中,然后再拷贝到指定的设备描述表中。 
  那幺我们如何应用上述原理来实现powerbuilder中的动画特效呢﹖由于在Powerbuilder中位图图片是由picture控件来显示的,只要用获取设备描
述表的函数GetDC来取得picture控件的设备描述表,再将与其兼容的内存设备描述表中的位图通过Bitblt、StretchBlt函数将图象按一定的增加量从
小到大分多步拷贝到pict

你可能感兴趣的:(PowerBuilder,pb,powerbuilder,开发语言)