|
做了一个界面,有很多对话框,没有触屏,没有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);
}
不知道这么写对不对?
也不知道问题在哪? |
|