初级会员
- 积分
- 116
- 金钱
- 116
- 注册时间
- 2017-11-14
- 在线时间
- 25 小时
|
1金钱
大家好:
因为编辑需要我调用分段存储功能,同一个函数,当我第一次跳转到该界面调用时正常,但是已经处于该界面下,当按键触发,第二次调用这个函数就出现异常,也不是真的死机或者异常中断这种。程序好像在运行,但是界面再无反应,所有按键不能触发。如果不二次调用这个函数就一切正常。我猜肯定是我哪里违规了,但是我不清楚,求教一下。
/*********************************************************************
* 显示信息
***********************************************************************/
static void _DrawIt(void * pData)
{
GUI_SetColor(GUI_YELLOW);//设置前景色
GUI_FillRect(edit.xpoint_start,edit.ypoint_start,edit.xpoint_stop,edit.ypoint_stop);//绘制填充矩形
GUI_SetColor(GUI_BLUE);//设置前景色
Edit_Draw_Char(edit.xpoint_start, edit.ypoint_start, edit.matrix, (char *)edit.content,FileMsg.PenSize);//自己封装的描点显示函数,经测试,只要不使用分段存储,怎么调用都可以
}
#define USE_BANDING_MEMDEV 1//启用分段存储
void Edit_Dis_String(WM_HWIN hWin)
{
WM_HWIN hWinOld;
GUI_RECT Rect = {EDIT_T1_STARTX, EDIT_T1_STARTY, EDIT_T1_ENDX,EDIT_T1_ENDY};//使用的区域
GUI_Delay(100);//用于刷新界面
hWinOld = WM_SelectWindow(WM_GetClientWindow(hWin));
GUI_SetPenSize(1);
GUI_SetColor(GUI_BLUE);//设置前景色
#if USE_BANDING_MEMDEV//如果使用分段存储
GUI_MEMDEV_Draw(&Rect,&_DrawIt,&edit,0,0);//使用分段存储绘制
#else
_DrawIt(&edit);
#endif
WM_SelectWindow(hWinOld);
}
WM_HWIN CreateFramewin_edit(void)
{
hWin = GUI_CreateDialogBox(_aDialogCreate_edit, GUI_COUNTOF(_aDialogCreate_edit), _cbDialog_edit, WM_HBKWIN, 0, 0);
DisMsg.type = DIS_ALL;
Edit_Dis_String(hWin);
return hWin;
}
|
|