OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6762|回复: 2

ucgui在回调函数中画两个按钮,显示不正常

[复制链接]

3

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-4-14
在线时间
1 小时
发表于 2015-4-14 20:11:37 | 显示全部楼层 |阅读模式
5金钱

ucgui在回调函数中画两个按钮,如果设置字符,则只能显示一个按钮,这个按钮可以正常显示字符。如果不设置按钮上的字符,则可以显示两个按钮,这两个按钮不显示字符。如果在这个回调函数中,同时在画两个滑动条,则只能显示一个,请问是什么问题。还有,在开机第一次执行回调函数画这两个按钮时,可以正常显示两个按钮,而且设置的字符也显示正常。而通过触屏,来调整窗口位置后,再在while(1)中执行回调函数时,就出现上面说的,按钮显示不正常的问题。

相关函数

void FrameWinButton1(void)//画button函数,BUTTON_Handle已在c文件开头定义
{
 BUTTON_SetText(hButton1_Frame2,"YES");
 hButton1_Frame2=BUTTON_CreateAsChild( 50, 80,  120, 60, hWin2, GUI_ID_YES, WM_CF_SHOW);
 BUTTON_SetText(hButton2_Frame2,"NO");
 hButton2_Frame2=BUTTON_CreateAsChild( 50, 180,  120, 60, hWin2, GUI_ID_NO, WM_CF_SHOW);

}

void WinHandler(WM_MESSAGE* pMsg)  //回调函数
{
 switch (pMsg->MsgId) 
 {
  case WM_PAINT:
  {
   FrameWinChild();
   //FrameWinButton2();
   FrameWinButton1();
   FrameWinSlider1();
  }break;
 }
}

//触屏按下的中断服务函数,改变窗口位置

void EXTI1_IRQHandler(void)

{
     P_x=(float)P_x*xfac+xoff;
     P_y=(float)P_y*yfac+yoff;
     WM_MoveTo(hWin2, PP_x, PP_y);
    }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-4-14 22:17:00 | 显示全部楼层
调用函数WM_InvalidateWindow()让你要显示按钮的那个窗口无效化
开往春天的手扶拖拉机
回复

使用道具 举报

17

主题

146

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1475
金钱
1475
注册时间
2018-11-15
在线时间
286 小时
发表于 2019-6-22 10:38:22 | 显示全部楼层
zuozhongkai 发表于 2015-4-14 22:17
调用函数WM_InvalidateWindow()让你要显示按钮的那个窗口无效化

凯哥,按钮不使用位图,把按钮图片放在SD卡,再从SD卡读取图片显示,以节约内存,这个该怎么操作?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 22:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表