这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 合作大赛 » 按照GDI 操作后,发现的小问题。。。。

共2条 1/1 1 跳转至

按照GDI 操作后,发现的小问题。。。。

菜鸟
2010-09-04 00:54:37     打赏

按照GDI 弟20页的例程操作后,原样输入代码,发现不能运行。

看看其他的文档后,发现:

在一开始声明     VMINT  layer_hdl[2]={0};后,
在下面代码中的创建层就没必要写了,因为会发生冲突
static void draw_hello(void)
{/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>修改后的例程
 VMINT  screen_width=vm_graphic_get_screen_width();
 VMINT  screen_height=vm_graphic_get_screen_height();
 VMUINT8  *layer_buffer=NULL, *res=NULL;
 VMINT  size=0,  handle=0;

 ///创建层
 //layer_hdl[0]=vm_graphic_create_layer(0,0,screen_width,screen_height,-1);
 //layer_hdl[1]=vm_graphic_create_layer(0,0,screen_width,screen_height,TRANS_COLOR);//第二层有穿透色

 ///获取基层缓冲
 layer_buffer=vm_graphic_get_layer_buffer(layer_hdl[0]);
 ///绘制基层
 vm_graphic_set_clip(0,0,screen_width,screen_height);
 res=vm_load_resource("bg.gif",&size);
 if(res==NULL)
 {
  //资源加载失败,释放系统资源,退出应用;
  vm_exit_app();
  return;
 }
。。。。。
}

导致
 //绘制第二层
 vm_graphic_set_clip(0,0,240,320);
 vm_graphic_textout(vm_graphic_get_layer_buffer(layer_hdl[1]),0,0,vm_ucs2_string("Hello world!"),vm_wstrlen(vm_ucs2_string("Hello World!")),VM_COLOR_RED);
 中的第一个参数vm_graphic_get_layer_buffer(layer_hdl[1])失败。。。。可能是冲突了吧。

如果将创建层哪一步注释掉,就好了。
请高人指导。




关键词: 按照     操作     发现     问题     graphic     layer    

菜鸟
2010-09-06 23:08:02     打赏
2楼

我是通过
 if(vm_graphic_get_layer_buffer(layer_hdl[1])==NULL)
 {
 vm_graphic_textout(vm_graphic_get_layer_buffer(layer_hdl[0]),70,80,vm_ucs2_string("Helorld!"),vm_wstrlen(vm_ucs2_string("Helorld!")),VM_COLOR_RED);
 }
验证的。
因为程序执行到if语句内部了,所以我判断没成功。不知道合理吧?

我再回去读读文档,理解一下你说的,谢谢;


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]