龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC中用GDI函数实规高速平滑动画(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
在MemBitmap.cpp中实现代码如下: //初始化位图类 void CMemBitmap::init(CWnd *pwnd) { RECT rt; //保存窗体客户区域的大小的矩形类型变量 pWnd = pwnd; //获取窗体指针 pw

在MemBitmap.cpp中实现代码如下:

//初始化位图类

void CMemBitmap::init(CWnd *pwnd)

{

   RECT      rt;              //保存窗体客户区域的大小的矩形类型变量

   pWnd = pwnd;                                   //获取窗体指针

   pwnd->GetClientRect(&rt);         //得到窗体客户区域的大小

   //利用窗体类的CDC指针在内存中创建位图

   CreateCompatibleBitmap(pwnd->GetDC(), rt.right;, rt.bottom);

}

CreateCompatibleBitmap函数作用是初始化位图类,其原型如下:

BOOL CreateCompatibleBitmap( CDC* pDC, int nWidth, int nHeight );

pDC是设备环境指针,本例用窗体的设备环境指针。nWidth和nHeight是指定该位图尺寸的高度与宽度,单位为象素。

4、添加成员函数完成绘图功能。为了能在动画中显示文本信息,我们添加一个成员变更来显示文本信息。其原型的代码如下:

//MemBitmap.h文件中

public:

void TextOut(int x, int y, int iSize, LPCSTR strText,COLORREF color);

//MemBitmap.cpp文件中

void CMemBitmap::TextOut(int x, int y, int iSize, LPCSTR strText, COLORREF color)

{

       CDC*       pDC = pWnd->GetDC();//获取窗体的指针

       CFont       NewFont;   //文本的字体对象

       CFont       *OldFont; //保存以前的字体指针

       CDC       dcMem ;         //内存中的DC指针,以便调用GDI函数在位图中绘图

    dcMem.CreateCompatibleDC(pDC);    //创建与窗体设备环境一样大小DC

    dcMem.SelectObject(this);       //将内存中的DC选择该类的位图对象

       NewFont.CreatePointFont(iSize,"宋体");//创建显示文本的字体

       OldFont = dcMem.SelectObject(&NewFont);     //选择新字体

精彩图集

赞助商链接