完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的界面中有两个button和一个edit,framewin上方有close,下拉窗口,点一个button在编辑框中显示一个数字,这个功能正常,可是点了close按键没有关闭窗口,没有反应,debug发现
void _cbMenu0_Close(WM_MESSAGE* pMsg) { if (pMsg->MsgId == WM_NOtiFY_PARENT_REFLECTION) { WM_DeleteWindow(pMsg->hWinSrc); GUI_CreateDialogBox(_aDialogCreate_main, GUI_COUNTOF(_aDialogCreate_main), &_cbMain, 0, 0, 0); return; /* We are done ! */ } BUTTON_Callback(pMsg); } 中pMsg->MsgId为not value;我这个例程以前在3.2寸液晶屏上用的很正常,最近做7寸移植拿过来就出了这个问题,触摸显示都还正常,对于这个GUI消息传送机制不太熟悉,这个pMsg->MsgId的值不知道是在哪里确定的,希望各大神赐教,给点建议,下面是这个界面的代码 #include "UI.h" /////////////////////////////////////////////////////////////////// /**************oˉêyéùÃ÷Çøóò****************************************/ //EventsFunctionList void OnButton1Clicked_menu0(WM_MESSAGE * pMsg); void OnButton0Clicked_menu0(WM_MESSAGE * pMsg); //EndofEventsFunctionList void _cbMenu0_Close(WM_MESSAGE* pMsg); /******************************************************************/ //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /**************×êÔ′±íéùÃ÷Çøóò***************************************/ const GUI_WIDGET_CREATE_INFO _aDialogCreate_menu0[4] = { { FRAMEWIN_CreateIndirect, "Caption", 0, 0, 0, 800,480,0,0}, { BUTTON_CreateIndirect, "0", GUI_ID_BUTTON0, 20, 87, 75,50, 0,0}, { EDIT_CreateIndirect, NULL, GUI_ID_EDIT0, 20, 10, 180,64, 0,0}, { BUTTON_CreateIndirect, "1", GUI_ID_BUTTON1, 125,87, 75,50, 0,0} }; /******************************************************************/ //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /**************¿Ø¼tÏìó|oˉêy±àD′Çøóò*********************************/ void OnButton0Clicked_menu0(WM_MESSAGE * pMsg) { WM_HWIN hWin = pMsg->hWin; EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'0'); } void OnButton1Clicked_menu0(WM_MESSAGE * pMsg) { WM_HWIN hWin = pMsg->hWin; EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'1'); /**********′°¿ú»¬¶ˉD§1û******************************************/ // int i; // for(i=0;i<5;i++) // { // WM_MoveWindow(hWin,0,-20); // GUI_Exec(); // } } /******************************************************************/ //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /**************¶Ô»°¿ò½çÃæ3õê¼»ˉÇøóò*********************************/ void InitDialog_menu0(WM_MESSAGE * pMsg) { WM_HWIN hWin = pMsg->hWin; WM_HWIN hWinClose; // //FRAMEWIN // hWinClose=FRAMEWIN_AddCloseButton(hWin, FRAMEWIN_BUTTON_RIGHT, 0); FRAMEWIN_AddMaxButton(hWin, FRAMEWIN_BUTTON_RIGHT, 1); FRAMEWIN_AddMinButton(hWin, FRAMEWIN_BUTTON_RIGHT, 2); FRAMEWIN_SetTitleHeight(hWin,40); WM_SetCallback(hWinClose, &_cbMenu0_Close); // //GUI_ID_BUTTON0 // BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,0xffc0c0); // //GUI_ID_EDIT0 // EDIT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_EDIT0),0,0x00ffff); EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT0),&GUI_Font24_1); EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT0),20); // //GUI_ID_BUTTON1 // BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,0xffc0c0); } /******************************************************************/ //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /**************»Øμ÷oˉêyÇøóò****************************************/ void _cbMenu0_Close(WM_MESSAGE* pMsg) { if (pMsg->MsgId == WM_NOTIFY_PARENT_REFLECTION) { WM_DeleteWindow(pMsg->hWinSrc); GUI_CreateDialogBox(_aDialogCreate_main, GUI_COUNTOF(_aDialogCreate_main), &_cbMain, 0, 0, 0); return; /* We are done ! */ } BUTTON_Callback(pMsg); } void _cbMenu0(WM_MESSAGE * pMsg) { int NCode, Id; WM_HWIN hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_PAINT: PaintDialog(pMsg); break; case WM_INIT_DIALOG: InitDialog_menu0(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: OnButton0Clicked_menu0(pMsg); break; } break; case GUI_ID_BUTTON1: switch(NCode) { case WM_NOTIFICATION_CLICKED: OnButton1Clicked_menu0(pMsg); break; } break; } break; default: WM_DefaultProc(pMsg); } } /******************************************************************/ //////////////////////////////////////////////////////////////////// |
|
相关推荐
1个回答
|
|
发现FRAMEWIN_AddMaxButton,FRAMEWIN_AddMinButton,FRAMEWIN_AddCloseButton这几个控件都不能用,这些地方移植的时候不用修改啊,在我原来3.2寸屏上可以的,都是 if (pMsg->MsgId == WM_NOTIFY_PARENT_REFLECTION)这个地方没通过,就以前是电阻屏,这个是电容屏啊
|
|
|
|
只有小组成员才能发言,加入小组>>
636 浏览 0 评论
1076 浏览 1 评论
2446 浏览 5 评论
2773 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2604 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
628浏览 9评论
624浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
743浏览 6评论
600浏览 5评论
647浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 15:34 , Processed in 0.547223 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号