UCGUI LISTBOX里调用_CallOwnerDraw时出现的问题.

UCGUI LISTBOX里调用_CallOwnerDraw时出现的问题

UCGUI 3.94

虽然很少出现,操作中也没有出现这样的情况,但我跑几个线程,测试程序时。

偶尔程序运行,调用_CallOwnerDraw过程时,如果调用pObj->pfDrawItem会出现非法指令的错误,查看代码,似乎一直都没有设置这个指针,怎么会调用到呢?

查看产生的core文件,pObj->pfDrawItem这个已经不是NULL了,搜索了所有用到这个指针的地方,除了调用设它他的方法外,没有地方变更过它的值呀!

调用的代码如下的:当调用的到 pObj->pfDrawItem 就出错了

static int _CallOwnerDraw(LISTBOX_Handle hObj, const LISTBOX_Obj* pObj, int Cmd, int ItemIndex) {
  WIDGET_ITEM_DRAW_INFO ItemInfo;
  int r;
  ItemInfo.Cmd       = Cmd;
  ItemInfo.hWin      = hObj;
  ItemInfo.ItemIndex = ItemIndex;
  if (pObj->pfDrawItem) {
    r = pObj->pfDrawItem(&ItemInfo);
  } else {
    r = LISTBOX_OwnerDraw(&ItemInfo);
  }
  return r;
}


估计还是UCGUI的堆管理的地方出现的问题!! 如果使用其的dropbox和lixtbox可能会出现

记录一下,是否有其它的同志,也见着过?


猜你喜欢

转载自blog.csdn.net/jhting/article/details/8808890