我在一本书上看到一个例程,代码如下: 
#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 ****************************/ 
可是模拟器仿真出错,图片如下: 
 
 
 
 
请问大神,怎么解决?谢谢! |