硬汉嵌入式论坛

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

[emWin] 模拟器仿真又出问题了

[复制链接]

3

主题

10

回帖

3

积分

新手上路

积分
3
发表于 2015-5-15 12:59:23 | 显示全部楼层 |阅读模式
又来向大神讨教了,在模拟器运行emwin时出现了如下情况,请问如何解决?再者什么原因?
QQ截图20150515125507.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107868
QQ
发表于 2015-5-15 16:49:21 | 显示全部楼层
这个是你调用错误,方便的话,贴出部分代码看下。
回复

使用道具 举报

3

主题

10

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-17 20:33:33 | 显示全部楼层

回 eric2013 的帖子

eric2013:
这个是你调用错误,方便的话,贴出部分代码看下。

//设置界面、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
static const GUI_WIDGET_CREATE_INFO _aDialogSetting[] = {
    { FRAMEWIN_CreateIndirect,  " ",           0,                       0,  0,  800,600,FRAMEWIN_CF_ACTIVE,0},
   
    { TEXT_CreateIndirect,      "10:32:36",          GUI_ID_TEXT3,            644,24, 111,46, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_0,          655,140,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_1,          655,235,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_2,          655,330,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_3,          655,425,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_4,          655,520,128,53, 0,0},
    { BUTTON_CreateIndirect,    "探 头 个 数",           BUTTON_ID_5,          60, 239,210,70, 0,0},
    { BUTTON_CreateIndirect,    "报 警 设 置",           BUTTON_ID_6,          356,239,210,70, 0,0},
    { BUTTON_CreateIndirect,    "IP 地 址 ",            BUTTON_ID_7,          60, 369,210,70, 0,0},
    { BUTTON_CreateIndirect,    "时 间 设 置",           BUTTON_ID_8,          357,369,210,70, 0,0}
};

void PaintDialog2(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
    GUI_SetColor(0xe16941);
    GUI_FillRect(0,0,799,99);
    GUI_SetColor(0xe16941);
    GUI_FillRect(650,101,799,599);
    GUI_DrawBitmap(&bmLOGO2,10,30);

}
void InitDialog2(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
    //
    //FRAMEWIN
    //
    FRAMEWIN_SetClientColor(hWin,0xffffff);
    FRAMEWIN_SetTitleVis(hWin,0);
   
    _CreatText(hWin, "",  GUI_ID_TEXT0,  215,26, 440,65,TEXT_ID_HITETL);
    switch(Language)
    {
    case 0:
        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_0),  GetLang(TEXT_ID_MEASURE));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_0),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_0),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_1),   GetLang(TEXT_ID_SET));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_1),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_1),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_2),  GetLang(TEXT_ID_SCAN));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_2),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_2),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_3),   GetLang(TEXT_ID_PAGEON));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_3),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_3),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_4),   GetLang(TEXT_ID_PANGEDOWN));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_4),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_4),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_5),  GetLang(TEXT_ID_Snumber));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_5),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_5),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_6),   GetLang(TEXT_ID_Salarm));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_6),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_6),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_7),  GetLang(TEXT_ID_SIP));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_7),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_7),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_8),   GetLang(TEXT_ID_Stime));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_8),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_8),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_9),   GetLang(TEXT_ID_PAGEON));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_9),   &GUI_FontHZ_NewSimSun_35);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_9),BUTTON_CI_UNPRESSED,0xe16941);
        break;
    case 1:
        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_0),  GetLang(TEXT_ID_MEASURE));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_0),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_0),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_1),   GetLang(TEXT_ID_SET));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_1),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_1),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_2),  GetLang(TEXT_ID_SCAN));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_2),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_2),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_3),   GetLang(TEXT_ID_PAGEON));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_3),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_3),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_4),   GetLang(TEXT_ID_PANGEDOWN));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_4),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_4),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_5),  GetLang(TEXT_ID_Snumber));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_5),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_5),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_6),   GetLang(TEXT_ID_Salarm));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_6),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_6),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_7),  GetLang(TEXT_ID_SIP));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_7),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_7),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_8),   GetLang(TEXT_ID_Stime));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_8),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_8),BUTTON_CI_UNPRESSED,0xe16941);

        BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_9),   GetLang(TEXT_ID_PAGEON));
        BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_9),   &GUI_Font32B_ASCII);
        BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_9),BUTTON_CI_UNPRESSED,0xe16941);
        break;
   
    }
}
/*********************************************************************
*
*       Dialog callback routine
*/
static void _cbSetting(WM_MESSAGE * pMsg)
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId)
    {
        case WM_DELETE:
             SettingState=0;
             break;
        case WM_PAINT:
            PaintDialog2(pMsg);
            break;
        case WM_INIT_DIALOG:
            InitDialog2(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 BUTTON_ID_0:
                        if(NCode==WM_NOTIFICATION_RELEASED)
                        {
                            MeasureState=1;
                            OpenMeasure();
                        }
                       break;
                case  BUTTON_ID_1:
               
                    break;
                case BUTTON_ID_2:

                    break;
                case  BUTTON_ID_3:
               
                      break;
                case BUTTON_ID_4:

                       break;
                case  BUTTON_ID_5:           //探头个数设置
                        if(NCode==WM_NOTIFICATION_RELEASED)
                        {
                            MeasureState=1;
                            OPenSetNum();
                        }
                    break;
                case BUTTON_ID_6:
                        if(NCode==WM_NOTIFICATION_RELEASED)
                        {
                            WarnState=1;
                            OpenSetwarn();
                        }
                    break;
                case BUTTON_ID_7:         //IP设置
                      if(NCode==WM_NOTIFICATION_RELEASED)
                      {
                        IPState=1;
                        OpenSetIP();
                     
                      }
                    break;

            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}
void OpenSetting(void)
{
    WM_HWIN Setting;
    SettingState=1;
     Setting = GUI_ExecDialogBox(_aDialogSetting, GUI_COUNTOF(_aDialogSetting), &_cbSetting, 0, 0, 0);//非阻塞式,否则定时器建立不成功
    while(SettingState)
       {
         GUI_Delay(50);  
       }
}
//传感器个数设置、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

static const GUI_WIDGET_CREATE_INFO _aDialogCreateS1[] = {
    { FRAMEWIN_CreateIndirect,  "Caption",           0,                       0,  0,  800,600,FRAMEWIN_CF_ACTIVE,0},
   
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_0,          655,140,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_1,          655,235,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_2,          655,330,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_3,          655,425,128,53, 0,0},
    { BUTTON_CreateIndirect,    NULL,                BUTTON_ID_4,          655,520,128,53, 0,0},

    { TEXT_CreateIndirect,      "10:32:36",          GUI_ID_TEXT1,            647,13, 111,46, 0,0},   
    //{ TEXT_CreateIndirect,       NULL,               GUI_ID_TEXT2,            19, 229,290,86, 0,0},

    { EDIT_CreateIndirect,       NULL,               GUI_EDIT_ID_0,            288,242,134,68, 0,0},

    { BUTTON_CreateIndirect,    "1",                 GUI_ID_BUTTON5,          12, 358,151,75, 0,0},
    { BUTTON_CreateIndirect,    "2",                 GUI_ID_BUTTON6,          169,358,151,75, 0,0},
    { BUTTON_CreateIndirect,    "3",                 GUI_ID_BUTTON7,          326,358,151,75, 0,0},
    { BUTTON_CreateIndirect,    "DEL",               GUI_ID_BUTTON8,          483,358,151,75, 0,0},
    { BUTTON_CreateIndirect,    "4",                 GUI_ID_BUTTON9,          12, 439,151,75, 0,0},
    { BUTTON_CreateIndirect,    "5",                 GUI_ID_BUTTON10,         169,439,151,75, 0,0},
    { BUTTON_CreateIndirect,    "6",                 GUI_ID_BUTTON11,         326,439,151,75, 0,0},
    { BUTTON_CreateIndirect,    "0",                 GUI_ID_BUTTON12,         483,439,151,75, 0,0},
    { BUTTON_CreateIndirect,    "7",                 GUI_ID_BUTTON13,         12, 520,151,75, 0,0},
    { BUTTON_CreateIndirect,    "8",                 GUI_ID_BUTTON15,         169,520,151,75, 0,0},
    { BUTTON_CreateIndirect,    "9",                 GUI_ID_BUTTON16,         326,520,151,75, 0,0},
    { BUTTON_CreateIndirect,    "ENT",               GUI_ID_BUTTON17,         483,520,151,75, 0,0}
};




void PaintDialogS1(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
     GUI_SetColor(0xe16941);
    GUI_FillRect(0,0,799,99);
    GUI_SetColor(0xe16941);
    GUI_FillRect(650,101,799,599);
    GUI_DrawBitmap(&bmLOGO2,10,30);

}


void InitDialogS1(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
    //
    //FRAMEWIN
    //
   FRAMEWIN_SetClientColor(hWin,0xffffff);
    FRAMEWIN_SetTitleVis(hWin,0);

     _CreatText(hWin, "",  GUI_ID_TEXT0,  215,26, 440,65,TEXT_ID_HITETL);
     _CreatText(hWin, "",  GUI_ID_TEXT2,  5,180, 450,60,TEXT_ID_Enter);
     //TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT2),&GUI_Font24B_1);
     TEXT_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_TEXT2),GUI_BLACK);
     TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT2),GUI_WHITE);
    switch(Language)
    {
        case 0:
            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_0),  GetLang(TEXT_ID_MEASURE));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_0),   &GUI_FontHZ_NewSimSun_35);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_0),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_1),   GetLang(TEXT_ID_SET));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_1),   &GUI_FontHZ_NewSimSun_35);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_1),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_2),  GetLang(TEXT_ID_SCAN));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_2),   &GUI_FontHZ_NewSimSun_35);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_2),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_3),   GetLang(TEXT_ID_PAGEON));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_3),   &GUI_FontHZ_NewSimSun_35);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_3),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_4),   GetLang(TEXT_ID_PANGEDOWN));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_4),   &GUI_FontHZ_NewSimSun_35);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_4),BUTTON_CI_UNPRESSED,0xe16941);
           break;
      case 1:
            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_0),  GetLang(TEXT_ID_MEASURE));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_0),   &GUI_Font32B_ASCII);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_0),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_1),   GetLang(TEXT_ID_SET));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_1),   &GUI_Font32B_ASCII);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_1),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_2),  GetLang(TEXT_ID_SCAN));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_2),   &GUI_Font32B_ASCII);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_2),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_3),   GetLang(TEXT_ID_PAGEON));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_3),   &GUI_Font32B_ASCII);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_3),BUTTON_CI_UNPRESSED,0xe16941);

            BUTTON_SetText      (WM_GetDialogItem(hWin,BUTTON_ID_4),   GetLang(TEXT_ID_PANGEDOWN));
            BUTTON_SetFont      (WM_GetDialogItem(hWin,BUTTON_ID_4),   &GUI_Font32B_ASCII);
            BUTTON_SetBkColor(WM_GetDialogItem(hWin,BUTTON_ID_4),BUTTON_CI_UNPRESSED,0xe16941);
          break;
    }
    //
    //GUI_ID_TEXT3
    //
    TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT3),&GUI_Font24_ASCII);
    TEXT_SetTextAlign(WM_GetDialogItem(hWin,GUI_ID_TEXT3),GUI_TA_VCENTER|GUI_TA_CENTER);
      //
    //GUI_ID_EDIT0
    //
    EDIT_SetFont(WM_GetDialogItem(hWin,GUI_EDIT_ID_0),&GUI_Font32_ASCII);
    EDIT_SetTextAlign(WM_GetDialogItem(hWin,GUI_EDIT_ID_0),GUI_TA_VCENTER|GUI_TA_CENTER);
    //
    //GUI_ID_TEXT4
    //
    TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT4),&GUI_FontHZ_NewSimSun_35);
    TEXT_SetTextAlign(WM_GetDialogItem(hWin,GUI_ID_TEXT4),GUI_TA_VCENTER|GUI_TA_CENTER);
    //
    //GUI_ID_BUTTON5
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),BUTTON_CI_UNPRESSED,0xe16941);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),&GUI_FontHZ_NewSimSun_35);
   //
    //GUI_ID_BUTTON6
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON6),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON6),BUTTON_CI_UNPRESSED,0xe16941);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON6),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON7
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON7),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON7),BUTTON_CI_UNPRESSED,0xe16941);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON7),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON8
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON8),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON8),BUTTON_CI_UNPRESSED,0xe16941);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON8),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON9
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON9),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON9),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON9),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON10
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON10),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON10),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON10),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON11
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON11),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON11),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON11),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON12
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON12),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON12),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON12),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON13
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON13),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON13),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON13),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON15
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON15),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON15),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON15),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON16
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON16),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON16),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON16),&GUI_FontHZ_NewSimSun_35);
    //
    //GUI_ID_BUTTON17
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON17),BUTTON_CI_UNPRESSED,0xffffff);
    BUTTON_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON17),BUTTON_CI_UNPRESSED,0xed9564);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON17),&GUI_FontHZ_NewSimSun_35);
    disnum=WM_GetDialogItem(hWin,GUI_EDIT_ID_0); //??????????????
    EDIT_SetText(disnum,n_input);
}

static int Set_InputString1(char input)
{
    if (len<3)
    {
        n_input[len++]=input;
        n_input[len]=0;        
        EDIT_SetMaxLen(disnum,4);
        EDIT_SetText(disnum,n_input);//显示     
        number = atoi(n_input);
        if(number>127)
        {
            number=0;
            EDIT_SetMaxLen(disnum,5);
            EDIT_SetText(disnum,"error");   
        }
     return number;
    }
    else return 0;
   
}


static void _cbSetNum(WM_MESSAGE * pMsg)
{
    //GUI_RECT r;
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId)
    {
    case WM_DELETE:
            NumberState=0;
            break;
       case WM_PAINT:
             PaintDialogS1(pMsg);
            break;
        case WM_INIT_DIALOG:
            InitDialogS1(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_BUTTON5:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('1');
                            break;
                        case GUI_ID_BUTTON6:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('2');
                            break;                        
                        case GUI_ID_BUTTON7:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('3');
                            break;
                        case GUI_ID_BUTTON8:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                n_input[0]=0;
                                    len=0;
                                    EDIT_SetText(disnum,n_input);
                            break;
                        case GUI_ID_BUTTON9:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('4');
                            break;
                        case GUI_ID_BUTTON10:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('5');
                            break;
                        case GUI_ID_BUTTON11:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('6');
                            break;
                        case GUI_ID_BUTTON12:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('0');
                            break;
                        case GUI_ID_BUTTON13:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('7');
                            break;
                        case GUI_ID_BUTTON15:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('8');
                            break;
                       case GUI_ID_BUTTON16:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                                Set_InputString1('9');
                            break;
                    case GUI_ID_BUTTON17:
                            if(NCode==WM_NOTIFICATION_RELEASED)
                            {
                                snumber=number;
                                SettingState=1;
                                OpenSetting();
                            }
                            break;
                    case BUTTON_ID_0:
                          if(NCode==WM_NOTIFICATION_RELEASED)
                            {
                                snumber=number;
                                MeasureState=1;
                                OpenMeasure();
                            }
                        break;
            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}
页面切换2,3次后就提示嵌套过多了。。。。我到现在还没有解决。



void OPenSetNum(void)
{
  WM_HWIN Number;
  NumberState=1;
  Number=GUI_ExecDialogBox(_aDialogCreateS1, GUI_COUNTOF(_aDialogCreateS1), &_cbSetNum, 0, 0, 0);
  while(1)
     {
       GUI_Delay(10);
     }
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107868
QQ
发表于 2015-5-17 22:11:27 | 显示全部楼层
我记得这个函数不是阻塞式的吗,你看下手册是不是搞错了, GUI_ExecDialogBox
回复

使用道具 举报

3

主题

10

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-17 22:16:22 | 显示全部楼层

回 eric2013 的帖子

eric2013:我记得这个函数不是阻塞式的吗,你看下手册是不是搞错了, GUI_ExecDialogBox (2015-05-17 22:11) 
我换成了GUI_CreateDialogBox效果一样。GUI_ExecDialogBox()函数是创建对话框并且马上执行对话框的回调函数,一直到该对话框的动作处理完成之后才返回,所以在对话框的回调函数中调用这个函数就相当调用了一个同步函数。如果在两个对话框的回调函数中利用这个函数相互调创建对方的话,就会导致无限的同步函数嵌套调用,就会进入一个死循环,回调函数就永远无法返回。
我后来在GUI_CreateDialogBox后面加了while(1){GUI_Exec();}一样要死
回复

使用道具 举报

3

主题

10

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-18 11:27:48 | 显示全部楼层

回 eric2013 的帖子

eric2013:我记得这个函数不是阻塞式的吗,你看下手册是不是搞错了, GUI_ExecDialogBox (2015-05-17 22:11)
case BUTTON_ID_0:
                          if(NCode==WM_NOTIFICATION_RELEASED)
                            {
                                GUI_EndDialog(hWin, 0);////////////////////结束对话框////////////////
                                snumber=number;
                                MeasureState=1;
                                OpenMeasure();
                            }
我在这里结束前一个对话框还是不行。。。现在使用的GUI_CreateDialogBox()非阻塞方式建立的
回复

使用道具 举报

3

主题

10

回帖

3

积分

新手上路

积分
3
 楼主| 发表于 2015-5-19 12:32:11 | 显示全部楼层
已解决。。。。不需要while(1)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-16 23:44 , Processed in 0.294437 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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