|

楼主 |
发表于 2014-5-19 20:14:19
|
显示全部楼层
回 eric2013 的帖子
eric2013:不是太懂你的意思,方便把你的函数贴上来吗 (2014-05-19 20:09)  static const GUI_WIDGET_CREATE_INFO _aDialogCreate0[] = {
{ WINDOW_CreateIndirect, NULL, ID_WINDOW_0,0 , 20 ,APP_UserWin_sizex,APP_UserWin_sizey},
// { EDIT_CreateIndirect , "",GUI_ID_EDIT0,127,48,60,20},
// { EDIT_CreateIndirect , "",GUI_ID_EDIT1,127,104,60,20},
// { EDIT_CreateIndirect , "",GUI_ID_EDIT2,127,160,60,20},
// { EDIT_CreateIndirect , "",GUI_ID_EDIT3,127,216,60,20},
{ BUTTON_CreateIndirect, NULL,GUI_ID_BUTTON0,15,264,80,20},
{ BUTTON_CreateIndirect, NULL,GUI_ID_BUTTON1,375,264,80,20},
};
这是建立的dialog, 里面只有两个button
static void _cbDialog0(WM_MESSAGE * pMsg) {
WM_HWIN hItem, hDlg;
int NCode,Id,i;
char font[20];
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:{
hItem = WM_GetDialogItem(hDlg, GUI_ID_BUTTON0);
//BUTTON_SetFocussable(hItem,0);
GB2312_to_UTF8_Str("è·¶¨",font);
BUTTON_SetFont(hItem,GUI_GetXBF_Font());
BUTTON_SetText(hItem,font);
hItem = WM_GetDialogItem(hDlg, GUI_ID_BUTTON1);
//BUTTON_SetFocussable(hItem,0);
GB2312_to_UTF8_Str("è¡Ïû",font);
BUTTON_SetFont(hItem,GUI_GetXBF_Font());
BUTTON_SetText(hItem,font);
/*--- Æeê¼ÆμÂê -----*/
hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0);
EDIT_SetFont(hItem,GUI_GetXBF_Font());
EDIT_SetDecMode(hItem,0,0,100000,0,0);
EDIT_SetSel(hItem, 0, -1);
/*--- ÖÕÖ1ÆμÂê -----*/
hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT1);
EDIT_SetFont(hItem,GUI_GetXBF_Font());
EDIT_SetDecMode(hItem,0,0,100000,0,0);
/*--- ÆμÂê¼ä¸ô -----*/
hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT2);
EDIT_SetFont(hItem,GUI_GetXBF_Font());
EDIT_SetDecMode(hItem,0,0,100000,0,0);
/*--- Ãa¸Ë3¤¶è -----*/
hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT3);
EDIT_SetFont(hItem,GUI_GetXBF_Font());
EDIT_SetFloatMode(hItem,0.0,0.0,99.99,2,0);
/*------ !!!ó|óÃ3ìDò×′쬱äá¿3õê¼»ˉ!!! ------*/
init_collectobj(&app);
break;
}
case WM_NOTIFY_PARENT:{
break;
}
case WM_PAINT:{
GUI_SetColor(CtoBGR(BK));
GUI_FillRect(0,0,APP_UserWin_sizex,APP_UserWin_sizey);
GUI_SetColor(CtoBGR(FK));
GUI_FillRect(7,7,APP_UserWin_sizex-7,APP_UserWin_sizey-7);
GUI_SetPenSize(3);
GUI_SetColor(CtoBGR(SK));
GUI_DrawRect(7,7,APP_UserWin_sizex-7,APP_UserWin_sizey-7);
GUI_SetColor(CtoBGR(IK));
GUI_DrawRect(8,39,APP_UserWin_sizex-8,39);
GUI_DrawRect(8,182,APP_UserWin_sizex-8,182);
GUI_ShowFont_At("Æeê¼ÆμÂê(KHz):",15,50,CtoBGR(GUI_WHITE));
GUI_ShowFont_At("ÖÕÖ1ÆμÂê(KHz):",15,106,CtoBGR(GUI_WHITE));
GUI_ShowFont_At("ÆμÂê¼ä¸ô(KHz):",15,162,CtoBGR(GUI_WHITE));
GUI_ShowFont_At("Ãa¸Ë3¤¶è(m):",15,218,CtoBGR(GUI_WHITE));
//hTimer4 = WM_CreateTimer(hDlg,4,PowerCheck_Time,0);
//hTimer5 = WM_CreateTimer(hDlg,5,1000,0);
break;
}
case WM_KEY:{
printf("WM_KEY _cbDialog0 \\r\\n");
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {
case GUI_KEY_ESCAPE:
if(!MesgBox_GetStatus())/*èç1ûÏûÏ¢oD×óòѾ-1رÕ2ÅÔêDí′ò¿aDÂoD×ó*/
{
app.mesgbox_lockret = 1;
Create_MesgBox(" íË3öêy¾Y2é¼ˉ£¿"," êÇ·ñíË3ö?",&Dialog0,MESGBOX_DoRet);
}
break;
case GUI_KEY_ENTER:
printf("GUI_KEY_ENTER _cbDialog0 \\r\\n");
// if(!EDIT_GetValue(WM_GetDialogItem(hDlg, GUI_ID_EDIT1))){
// app.mesgbox_lockret = 0;
// Create_MesgBox(" ÖÕÖ1ÆμÂê2»ÄüÎa0KHz!","",&Dialog0,MESGBOX_DoRet);
// }else if(!EDIT_GetValue(WM_GetDialogItem(hDlg, GUI_ID_EDIT2))){
// app.mesgbox_lockret = 0;
// Create_MesgBox(" ÆμÂê¼ä¸ô2»ÄüÎa0KHz!","",&Dialog0,MESGBOX_DoRet);
// }else if(!EDIT_GetValue(WM_GetDialogItem(hDlg, GUI_ID_EDIT3))){
// app.mesgbox_lockret = 0;
// Create_MesgBox(" Ãa¸Ë3¤¶è2»ÄüÎa0m!","",&Dialog0,MESGBOX_DoRet);
// }else{
// create_workflie(app.fullname);/*èç1û1¤×÷Ãæêy¾YÎļtòѾ-′æÔú*/
// read_flie(app.fullname,0,(void*)workobj,sizeof(WORKOBJ));
// /*èç1ûÕaêǸöûóD′æóDDÅÏ¢μÄDÂÎļtÔò3õê¼»ˉ1¤×÷Ãæ¶ÔÏó*/
// workobj->workflag = 0;
// workobj->workname = app.fullname;
// workobj->Anchor_Len = Ads->Anchor_Len;
// Time_GetTimeString(workobj->date,Show_YMD);
// Time_GetTimeString(workobj->time,Show_HMS);
// workobj->Start_Fre = EDIT_GetValue(WM_GetDialogItem(hDlg, GUI_ID_EDIT0));
// workobj->End_Fre = EDIT_GetValue(WM_GetDialogItem(hDlg, GUI_ID_EDIT1));
// workobj->Fre_Div = EDIT_GetValue(WM_GetDialogItem(hDlg, GUI_ID_EDIT2));
// workobj->Ancor_Len_Pre = EDIT_GetValue(WM_GetDialogItem(hDlg, GUI_ID_EDIT3));
// Open_Dialog(&Dialog1,_aDialogCreate1,GUI_COUNTOF(_aDialogCreate1), _cbDialog1);
// WM_SetFocus(Dialog1);
// }
Open_Dialog(&Dialog1,_aDialogCreate1,GUI_COUNTOF(_aDialogCreate1), _cbDialog1);
WM_SetFocus(Dialog1);
break;
default:break;
}
break;
}
}
default: WM_DefaultProc(pMsg);
}
}
回调函数中case WM_KEY:里面有两个消息GUI_KEY_ESCAPE和GUI_KEY_ENTER 这个时候我通过按键发消息GUI_KEY_ENTER 回调函数GUI_KEY_ENTER 里没反应,但是通过按键发消息GUI_KEY_ESCAPE 回调函数GUI_KEY_ESCAPE 里有反应
我不太理解,为啥回调函数GUI_KEY_ENTER 里没反应???
请大神指点 |
|