OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4029|回复: 2

这个错误怎么解决

[复制链接]

72

主题

179

帖子

0

精华

高级会员

Rank: 4

积分
543
金钱
543
注册时间
2014-10-15
在线时间
128 小时
发表于 2018-9-16 12:45:09 | 显示全部楼层 |阅读模式
1金钱
我在一本书上看到一个例程,代码如下:
#include "GUIDEMO.h"
#include <stdlib.h>
#include "stdio.h"
#include "EDIT.h"
#include <stddef.h>
#include "DIALOG.h"
#include "WM.h"
#include "BUTTON.h"
#include "FRAMEWIN.h"
#include "GUI.h"
#include "TEXT.h"

static int Count;

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[]={
        {FRAMEWIN_CreateIndirect,"armfly",0,0,0,800,480,FRAMEWIN_CF_MOVEABLE,0},
        {BUTTON_CreateIndirect,"BUTTON0",GUI_ID_BUTTON0,82,122,162,37,0,0},
        {BUTTON_CreateIndirect,"BUTTON1",GUI_ID_BUTTON1,82,62,162,37,0,0},
        {TEXT_CreateIndirect,"0000",GUI_ID_TEXT0,10,10,50,48,0,0}
};

void PaintDialog(WM_MESSAGE *pMsg)
{
        WM_HWIN hWin=pMsg->hWin;
}

void InitDialog(WM_MESSAGE *pMsg)
{
        WM_HWIN hWin=pMsg->hWin;
        FRAMEWIN_SetFont(hWin,&GUI_Font24B_ASCII);
        FRAMEWIN_SetTextAlign(hWin,GUI_TA_VCENTER|GUI_TA_CENTER);
        FRAMEWIN_AddCloseButton(hWin,FRAMEWIN_BUTTON_RIGHT,0);
        FRAMEWIN_AddMaxButton(hWin,FRAMEWIN_BUTTON_RIGHT,1);
        FRAMEWIN_AddMinButton(hWin,FRAMEWIN_BUTTON_RIGHT,2);
        FRAMEWIN_SetTitleHeight(hWin,30);

        TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT0),&GUI_FontD36x48);
}

static void _cbCallback(WM_MESSAGE *pMsg)
{
        int NCode,Id;
        char buf[10];
        WM_HWIN hWin=pMsg->hWin;
        switch(pMsg->MsgId)
        {
        case WM_TIMER:
                Count++;
                sprintf(buf,"%04d",Count);
                TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT0),(const char *)buf);
                WM_RestartTimer(pMsg->Data.v,100);
                break;
        case WM_PAINT:
                PaintDialog(pMsg);
        case WM_INIT_DIALOG:

                InitDialog(pMsg);
                break;
        case WM_KEY:
                switch(((WM_KEY_INFO *)(pMsg->Data.p))->Key)
                {
                case GUI_KEY_ESCAPE:
                        GUI_EndDialog(hWin,1);
                        break;
                case GUI_KEY_ENTER:
                        GUI_EndDialog(hWin,0);
                        break;

                }
                break;
                case WM_NOTIFY_PARENT:
                        Id=WM_GetId(pMsg->hWinSrc);
                        NCode=pMsg->Data.v;
                        switch(Id)
                        {
                        case GUI_ID_OK:
                                if(NCode==WM_NOTIFICATION_RELEASED)
                                        GUI_EndDialog(hWin,0);
                                break;
                        case GUI_ID_CANCEL:
                                if(NCode==WM_NOTIFICATION_RELEASED)
                                        GUI_EndDialog(hWin,0);
                                break;
                        case GUI_ID_BUTTON0:
                                switch(NCode)
                                {
                                case WM_NOTIFICATION_CLICKED:
                                        break;
                                case WM_NOTIFICATION_RELEASED:
                                        break;
                                case WM_NOTIFICATION_MOVED_OUT:
                                        break;
                                }
                                break;
                        case GUI_ID_BUTTON1:
                                switch(NCode)
                                {
                                case WM_NOTIFICATION_CLICKED:
                                        break;
                                case WM_NOTIFICATION_RELEASED:
                                        break;
                                case WM_NOTIFICATION_MOVED_OUT:
                                        break;
                                }
                                break;
                        }
                        break;
                        default:
                                WM_DefaultProc(pMsg);
        }
}
void MainTask(void) {
        WM_HWIN hDlg;
  WM_HTIMER hTimer;

  Count=0;
  WM_SetCreateFlags(WM_CF_MEMDEV);
  GUI_Init();
  WM_SetDesktopColor(GUI_BLUE);
  FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
  BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
  hDlg=GUI_CreateDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0);
  //GUI_ExecDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0);
  //hTimer=WM_CreateTimer(WM_GetClientWindow(hDlg),0,100,0);
  while(1)
  {
          GUI_Delay(100);
  }
}

/*************************** End of file ****************************/
可是模拟器仿真出错,图片如下:

3.jpg

请问大神,怎么解决?谢谢!

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

323

帖子

1

精华

高级会员

Rank: 4

积分
935
金钱
935
注册时间
2017-12-11
在线时间
196 小时
发表于 2018-9-16 12:45:10 来自手机 | 显示全部楼层
回复

使用道具 举报

72

主题

179

帖子

0

精华

高级会员

Rank: 4

积分
543
金钱
543
注册时间
2014-10-15
在线时间
128 小时
 楼主| 发表于 2018-9-16 16:19:54 | 显示全部楼层

谢谢,少了一个break
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 08:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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