例程
我在一本书上看到一个例程,代码如下:
#include "GUIDEMO.h"
#include
#include "stdio.h"
#include "EDIT.h"
#include
#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 ****************************/
可是模拟器仿真出错,图片如下:
请问大神,怎么解决?谢谢!
回帖(2)
2020-6-2 13:16:56
参数设置错识
参数设置错识
举报
2020-6-2 13:22:57
谢谢,少了一个break
谢谢,少了一个break
举报
更多回帖