硬汉嵌入式论坛

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

[μCGUI] 在VC上好好的,移到板子上就有问题了,我不认为103ZET6跑不起UCGUI

[复制链接]

2

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2014-6-27 16:00:30 | 显示全部楼层 |阅读模式
做了一个界面,有很多对话框,没有触屏,没有OS,用外部按键。
现在移到板子上之后出现了两个问题:
1、在第一个界面四个按钮,按TAB件切换焦点,按ENTER键都能进入下一个对话框;在下一个对话框,按TAB键切换焦点,但是有时候明明焦点已经在一个按钮上了,按ENTER却没有进入下一个界面,就是没反应,但是按TAB键再次聚焦在这个按钮上时,有时候就会进入到下一个界面。就是说进入第二个对话框之后,控件获得焦点有时候不响应按键。
我是这么创建的对话框:

    WinMain = GUI_CreateDialogBox(_aDialogMain, GUI_COUNTOF(_aDialogMain),&_cbDialogMain, WM_HBKWIN,0,0);        
    WM_MakeModal(WinMain);
    GUI_ExecCreatedDialog(WinMain);
    WM_SetFocus(WinMain);
回调函数中建立第二个对话框:

    case GUI_ID_BUTTON0:
              WinMeasurement = GUI_CreateDialogBox(_aDialogMeasurement, GUI_COUNTOF(_aDialogMeasurement), &_cbDialogMeasurement, WM_HBKWIN, 0, 0);  
             WM_MakeModal(WinMeasurement);
             GUI_ExecCreatedDialog(WinMeasurement);
    break;
2、在创建某个特定对话框的时候出现了卡屏,就是该显示的对话框没里的控件没显示出来,按TAB键切换焦点的时候才显示出来。之后所有的对话框都出现了这个问题。

                        case GUI_ID_BUTTON0:
                            if(0)
                            {
                                    GUI_EndDialog(hWin, 0);
                                                                        WM_MakeModal(WinMeasurement);                                 
                                    WM_SetFocus(WinMeasurement);
                            }
                            if(1)
                            {
                                    GUI_EndDialog(hWin, 0);
                                    WinResults = GUI_CreateDialogBox(_aDialogResults, GUI_COUNTOF(_aDialogResults), &_cbDialogResults, WM_HBKWIN, 0, 0);
                                    WM_MakeModal(WinResults);
                                    GUI_ExecCreatedDialog(WinResults);
这个就是这个按钮创建对话框。
但是在VC上运行的时候两个问题都没有。
我的按键是外部中断函数里边:

void EXTI2_IRQHandler(void)
{
    delay_ms(10);
    if(KEY_ENTER == 0)     
    {                 
        BEEP = 1;   
        delay_ms(100);
        BEEP = 0;
        GUI_StoreKeyMsg(GUI_KEY_ENTER,1);
    }
    EXTI_ClearITPendingBit(EXTI_Line2);
}
不知道这么写对不对?
也不知道问题在哪?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-6-27 18:53:56 | 显示全部楼层
你这里怎么1和2里面都是  case GUI_ID_BUTTON0:
回复

使用道具 举报

2

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2014-6-30 09:36:12 | 显示全部楼层

回 eric2013 的帖子

eric2013:你这里怎么1和2里面都是  case GUI_ID_BUTTON0: (2014-06-27 18:53) 
按钮在不同的Dialog 不是可以用相同的ID的吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-6-30 09:43:06 | 显示全部楼层

回 xavier 的帖子

xavier:按钮在不同的Dialog 不是可以用相同的ID的吗 (2014-06-30 09:36) 
可以的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 01:21 , Processed in 0.166363 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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