硬汉嵌入式论坛

 找回密码
 立即注册
查看: 6544|回复: 3
收起左侧

[emWin] GRAPH_DATA_YT_Clear调用异常,求帮助

[复制链接]

1

主题

12

回帖

1

积分

新手上路

积分
1
发表于 2014-5-4 09:16:55 | 显示全部楼层 |阅读模式
我要实现的功能是点正弦按键的时候显示正弦波,按方波按键显示方波。现在的问题是只点击其中一个都正常,先点其中一个再点另一个就会两个波形都出现。我觉得应该是原来的数据项没有删除,所以调用了GRAPH_DATA_YT_Clear,结果直接异常了。。。。求解决,谢谢。前两个button都能正常工作,但是一按第三个立刻就异常了  也就是这句话:GRAPH_DATA_YT_Clear(hData);
相关代码如下:
       case ID_BUTTON_14: // Notifications sent by '正弦波¨'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
                                convert_sin();//计算正弦表
                                hData=GRAPH_DATA_YT_Create(GUI_RED,200,wave_data,200);
                                GRAPH_DATA_YT_SetOffY(hData, 60);
                                GRAPH_DATA_YT_SetAlign(hData, GRAPH_ALIGN_LEFT);
                                hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
                                GRAPH_SetGridDistX(hItem, 10);
                                GRAPH_SetGridDistY(hItem, 10);

                                GRAPH_SetGridVis(hItem, 1);

                                GRAPH_AttachData(hItem, hData);
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
                        case ID_BUTTON_15: // Notifications sent by '·方波¨'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
                                convert_square();
                                hData=GRAPH_DATA_YT_Create(GUI_RED,200,wave_data,200);
                                GRAPH_DATA_YT_SetOffY(hData, 60);
                                GRAPH_DATA_YT_SetAlign(hData, GRAPH_ALIGN_LEFT);
                                hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
                                GRAPH_SetGridDistX(hItem, 10);
                                GRAPH_SetGridDistY(hItem, 10);
                                GRAPH_SetGridVis(hItem, 1);
                                GRAPH_AttachData(hItem, hData);
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
                        break;
                        case ID_BUTTON_16: // Notifications sent by '清除graph'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
//                                hData=GRAPH_DATA_YT_Create(GUI_RED,200,wave_data,200);
//                                hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
                                 GRAPH_DetachData(hItem, hData);
                                GRAPH_DATA_YT_Clear(hData);
//                                GRAPH_DetachData(hItem, hData);
//                                GRAPH_DATA_YT_Delete(hData);
//                                WM_DeleteWindow(hItem);
//                                hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
//                                GRAPH_SetBorder(hItem, 2, 2, 2, 2);
//                                hItem = GRAPH_CreateEx(120, 60, 200, 130, WM_HBKWIN, WM_CF_SHOW, 0, ID_GRAPH_0);
//                                hData = GRAPH_DATA_YT_Create(GUI_RED,200,wave_data,200);
//                                GRAPH_AttachData(hGraph, hData);
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
    // USER END
    }
    break;
回复

使用道具 举报

1

主题

12

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-5-4 11:01:07 | 显示全部楼层
怎么没有人回复呢??求帮助啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116787
QQ
发表于 2014-5-5 21:09:37 | 显示全部楼层
这个GRAPH_DATA_YT_Clear功能我还没有使用过,有机会试试
回复

使用道具 举报

0

主题

13

回帖

0

积分

新手上路

积分
0
发表于 2014-5-8 08:55:48 | 显示全部楼层
是的,俺也碰到了,删除GRAPH控件是, 申请的内存无法完全释放!感觉应该是软件BUG。
求解决!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-7-7 08:38 , Processed in 0.285757 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表