嵌入式学习小组
直播中

温益浪

7年用户 186经验值
私信 关注

为什么ucgui在回调函数中画的两个按钮显示不正常?

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);
    }

回帖(1)

马杰

2019-8-15 09:34:47
调用函数WM_InvalidateWindow()让你要显示按钮的那个窗口无效化
举报

更多回帖

发帖
×
20
完善资料,
赚取积分