完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想在对话框的一个地方绘制一个渐变的矩形,初始化的时候渐变的矩形被绘制出来了,再次进WM_PAINT事件时,我想改变渐变矩形的大小,可是没有反应。部分代码如下:
case WM_PAINT: GUI_DrawGradientV(311,240-SpeedCurVal,320,240,GUI_WHITE,GUI_RED); SpeedCurVal++; if(SpeedCurVal == 200) SpeedCurVal = 0; break; 在debug的时候 代码确实执行了,可是没有任何改变。 调用WM_Paint()函数,触发重绘事件,矩形的大小会改变,可是没运行一会就死机了。 望大神解答啊!!!!!!!!!! |
|
相关推荐
2个回答
|
|
#include "GUI.h"
#include "DIALOG.h" #include /********************************************************************************************************** * 宏定义 **********************************************************************************************************/ #define ID_WINDOW_0 (GUI_ID_USER + 0x00) #define ID_TIMER_0 (GUI_ID_USER + 0x30) /********************************************************************************************************** * 函 数 名: * 功能说明: 回调函数 * 形 参: pMsg 消息指针变量 * 返 回 值: 无 **********************************************************************************************************/ static void _cbCallback(WM_MESSAGE * pMsg) { static int SpeedCurVal = 0; switch (pMsg->MsgId) { case WM_PAINT: GUI_SetBkColor(GUI_BLACK); GUI_Clear(); GUI_DrawGradientV(20,240 - SpeedCurVal,320,240,GUI_WHITE,GUI_RED); break; case WM_INIT_DIALOG: WM_CreateTimer(pMsg->hWin,ID_TIMER_0,40,0); break; case WM_TIMER: SpeedCurVal++; if(SpeedCurVal == 200) { SpeedCurVal = 0; } WM_RestartTimer(pMsg->Data.v, 40); WM_InvalidateWindow(pMsg->hWin); break; default: WM_DefaultProc(pMsg); } } static const GUI_WIDGET_CREATE_INFO _aDialogCreateModality[] = { { WINDOW_CreateIndirect, "", ID_WINDOW_0, 0, 0, 480,272, 0, 0x0, 0 }, }; void MainTask(void) { WM_SetCreateFlags(WM_CF_MEMDEV); GUI_Init(); GUI_CreateDialogBox( _aDialogCreateModality, GUI_COUNTOF(_aDialogCreateModality), &_cbCallback, WM_HBKWIN, 0, 0); while (1) { GUI_Delay(1000); } } |
|
|
|
我主要的问题其实是要设置我要绘制渐变矩形的那个区域无效就行了, WM_InvalidateArea(&Rect); //使显示器的部分区域无效 谢谢你的回答
|
|
|
|
只有小组成员才能发言,加入小组>>
807 浏览 0 评论
1159 浏览 1 评论
2534 浏览 5 评论
2867 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2717 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1094浏览 3评论
197浏览 2评论
463浏览 2评论
376浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
458浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 14:08 , Processed in 1.188775 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号