完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
个位好,本人在学习UCGUI时碰到了一下问题,请教下大家!! 我在MainDisplayCallback回调函数中任务中用BUTTON_Create()函数建立了一个2个按键,按键1,2,当按下第1个按键时
弹出第二个界面,触摸屏是移植好了的,按下按钮也有反应,按下按钮也高亮了,但是未见弹出第二个界面,麻烦版主抽空帮忙分析下原因,谢谢了! 主要函数如下: void Touch_Task(void *pdata) //液晶屏更新任务 { g_hMainDisplay = WM_CreateWindow(0, 0, LCD_GetXSize()-1, LCD_GetYSize()-1, WM_CF_SHOW, &MainDisplayCallback, 0); g_hSelectWaveDisplay = WM_CreateWindow(0, 0, LCD_GetXSize()-1, LCD_GetYSize()-1, WM_CF_SHOW, &SelectWaveDisplayCallback , 0); WM_BringToTop(g_hMainDisplay); WM_SetFocus(g_hMainDisplay); WM_SelectWindow(g_hMainDisplay); WM_Paint(g_hMainDisplay); while (1) { GUI_TOUCH_Exec(); // _DemoTransWindow(); // Touch_Sample(); //Demo_Graph(); GUI_Exec(); //GUI_Delay(10); OStimeDly(OS_TICKS_PER_SEC/200); } } /********************************************************* 主界面函数:MainDisplayCallback 第二个窗口回调窗口函数:g_hSelectWaveDisplay **********************************************************/ void MainDisplayCallback(WM_MESSAGE* pMsg) { int ButtonId, NCode; switch (pMsg->MsgId) { case WM_PAINT: GUI_ClearRect(200, 100, 470, 350); /* 建立按钮 */ Button_SelectWave = BUTTON_Create(0, 430, 200, 60, GUI_ID_SELECTWAVE, WM_CF_SHOW); Button_Setup = BUTTON_Create(200, 430, 200, 60, GUI_ID_SETUP, WM_CF_SHOW); /* 设置按钮文本 */ BUTTON_SetText(Button_OnOf , "设置"); BUTTON_SetText(Button_SelectWave , "波形选择"); break; case WM_NOTIFY_PARENT: ButtonId = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; // ButtonId = GUI_GetKey(); switch(NCode) { case WM_NOTIFICATION_RELEASED: if(ButtonId == GUI_ID_SELECTWAVE) { WM_BringToTop(g_hSelectWaveDisplay); WM_SetFocus(g_hSelectWaveDisplay); WM_SelectWindow(g_hSelectWaveDisplay); WM_Paint(g_hSelectWaveDisplay); } break; } default: WM_DefaultProc(pMsg); } } 备注: 我单步调试可以看到,我按下触摸屏的“1”按钮松开后,发现程序已经运行到 了_OnButtonReleased(),这个函数中有WM_NotifyParent()这个函数,WM_NotifyParent()这个函数按我理解有2句Msg.MsgId = WM_NOTIFY_PARENT;WM_SendToParent(hWin, &Msg);已经实现了发送 WM_NOTIFY_PARENT了,但是问题是程序不能回到MainDisplayCallback这个回调函数执行case WM_NOTIFY_PARENT这句程序,不解。 前段时间试过外部按键按下按钮实现同样的功能,也是无法实现,道理是一样的按下按钮后,程序运行到BUTTON_Callback这个GUI自带的按钮回调函数,但是不会回到我的MainDisplayCallback函数,按道理应该是执行完BUTTON_Callback回调函数后再回到用户的回调函数继续执行的吧。 不知道上面我自己的理解对不对,请教下版主GUI的每种控件按下以后都是回到响应的控件的回调函数执行,执行完以后,是否会自动回到用户的回调函数中,或者有什么条件回到用户的回调函数中??? |
|
相关推荐
2个回答
|
|
如果想透彻的学习下ucgui可以联系我 qq610095871 开水。论坛里搜索ucgui视频教程也可以
|
|
|
|
没用过,学习了。
|
|
|
|
只有小组成员才能发言,加入小组>>
UCOSII中断中添加OSSemPost(Sem);程序无法运行
5005 浏览 1 评论
在BC5.0上编译uC/OS-II出现"eeror writing object file",怎样处理???
3219 浏览 1 评论
594浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 18:52 , Processed in 0.647614 second(s), Total 102, Slave 85 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号