完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
[C] 纯文本查看 复制代码
问题是这样:预想是在桌面窗口的回调函数中处理按键消息,ZERO键实现一个窗口的创建,ALARM实现窗口的删除。实际效果是能够创建窗口,但无法删除(具体现象是桌面窗口没有重绘,创建的窗口依旧存在)。[C] 纯文本查看 复制代码 为证明程序没有卡死,加入了LED指示按键后的响应状态,ZERO创建窗口,同时电亮LED,ALARM删除窗口并熄灭LED,实际效果是,LED出现点亮并熄灭,但创建的窗口依旧是删除后依旧存在。[C] 纯文本查看 复制代码 代码如下[C] 纯文本查看 复制代码 请各位大神指点迷境!万谢![C] 纯文本查看 复制代码 static void WinHandler(WM_MESSAGE * pMsg) {switch (pMsg->MsgId) {case WM_PAINT: //GUI_SetBkColor(GUI_BLACK); /* Automacally update desktop window */ GUI_Clear(); GUI_SetColor(GUI_WHITE); GUI_SetFont(&GUI_Font24B_ASCII); GUI_DispStringAt("WM Test",400,200); break; case WM_NOTIFY_PARENT: //????×??°???±?á?¨?????°?????¨????LED?¤?÷ ?©break;case WM_KEY:switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {case KEY_MESSAGE_ZERO :LED0_On();hProgbar = PROGBAR_Create(100,40,100,20,WM_CF_SHOW);break;case KEY_MESSAGE_ALARM :PROGBAR_Delete(hProgbar);LED0_Off();break; |
|
相关推荐
6个回答
|
|
|
|
|
|
窗口删除后要无效化背景窗口以进行重绘,不然你是看不到删除的效果的,虽然它已经被删除了。
|
|
|
|
重刷背景的意思是?我使用了桌面窗口的回调函数,理应当由回调函数重绘的呀。删除后没有反应了
|
|
|
|
我追踪了下程序流程,发现无效化是在deletewinow()中调用invalidateabs()完成的呀……
|
|
|
|
在delete之后单独调用无效化窗口函数,名字自己去手册找。
|
|
|
|
按照你的方法,使用WM_InvalidateWindow()无效化桌面窗口,可以观察到桌面被刷新了一下,但之前窗口还是在……
|
|
|
|
只有小组成员才能发言,加入小组>>
795 浏览 0 评论
1154 浏览 1 评论
2530 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2713 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1075浏览 3评论
195浏览 2评论
461浏览 2评论
374浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:37 , Processed in 1.164750 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号