不好意思,新手,问题可能痴呆了点。。。。见谅啊。。。。。
在VRE GDI introduction中的第22页,介绍第二种创建画布的方式的相关代码。为什么我按照上面写了,运行处错误。。。。(脸红了。。。)。
我是这样写的:
static void draw_hello(void)
{
VMINT hcanvas1, hcanvas2;
VMUINT8* cvs_buf1, cvs_buf2;
struct frame_prop* img_prop=NULL;
VMUINT8 *layer_buffer=NULL, *res=NULL;
VMINT size=0, handle=0;
res=vm_load_resource("bg.gif",&size);
/*创建画布*/
hcanvas1=vm_graphic_load_image(res,size);
hcanvas2=vm_graphic_create_canvas(240,320);
/*获取画布属性*///获取图像属性结构体指针;
img_prop=vm_graphic_get_img_property(hcanvas1,1);
/*获取画布显示缓冲区指针*/
cvs_buf1=vm_graphic_get_canvas_buffer(hcanvas1);
cvs_buf2=vm_graphic_get_canvas_buffer(hcanvas2);
/*从一个画布获取数据往另一个画布绘制*/
vm_graphic_blt(cvs_buf2,0,0,cvs_buf1,0,0,img_prop->width ,img_prop->height ,1);
/*从画布获取数据往层上绘制*/
vm_graphic_blt(layer_buffer,0,0,cvs_buf1,0,0,img_prop->width ,img_prop->height ,1);
vm_graphic_blt(layer_buffer,100,100,cvs_buf2,0,0,img_prop->width ,img_prop->height ,1);
vm_graphic_flush_layer(layer_hdl,1);//刷屏
vm_graphic_release_canvas(hcanvas1);//(新加的,我觉得需要释放一下。。。)
vm_graphic_release_canvas(hcanvas2);
}
各位大侠,救救小弟弟吧。。。。