野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17083|回复: 1

新人求教 关于和emwin屏幕更新

[复制链接]
发表于 2018-9-10 10:24:39 | 显示全部楼层 |阅读模式
各位大佬,我现在在开发一个东西,需要用到手写签名。只是重启后第一次能正常显示触摸痕迹,第二次获打开其他界面就无法实时更新,求各位大佬指教
代码段如下:
case WM_TOUCH:
{
  Id    = WM_GetId(pMsg->hWinSrc);
  NCode = pMsg->Data.v;
  GUI_PID_STATE *pidsta;
  int pidx,pidy;
  pidsta = (GUI_PID_STATE *)pMsg->Data.p;
  pidx = pidsta->x;pidy = pidsta->y;
  if((pidx>50)&(pidy> 200)&(pidx<450)&(pidy<360))
  {
   GUI_SetPenSize(8);
   GUI_SetColor(0x000000);
   GUI_DrawPoint(pidx+5,pidy+30);
   //CurrentTextColor = 0x000000;
   //PutPixel(,);
   
   pidx = pidx - 50;
   pidy = pidy - 200;
   write_buf[pidx][pidy/8] = write_buf[pidx][pidy/8]|(0x01<<pidy%8);
   //GUI_Exec();
  }
  //WM_Paint(hWinmain);
  //WM_PAINT;
  //GUI_PID_StoreState(pidsta);
  break;
}  
case WM_PAINT:
{
  GUI_SetPenSize(5);
  GUI_SetColor(0x000000);
  for(int iii = 0 ;iii < 400;iii++)
  {
   for(int jjj = 0;jjj<20;jjj++)
   {
    for(int kkk = 0;kkk<8;kkk++)
    {
     if(((write_buf[iii][jjj]>>kkk)&0x01)==1)
     {GUI_DrawPoint(50+iii,200+jjj*8+kkk);}
    }
   }
  }
  break;
}

回复

使用道具 举报

 楼主| 发表于 2018-9-10 10:43:57 | 显示全部楼层
[code]
        case WM_TOUCH:
        {
                Id    = WM_GetId(pMsg->hWinSrc);
                NCode = pMsg->Data.v;
                GUI_PID_STATE *pidsta;
                int pidx,pidy;
                pidsta = (GUI_PID_STATE *)pMsg->Data.p;
                pidx = pidsta->x;pidy = pidsta->y;
                if((pidx>50)&(pidy> 200)&(pidx<450)&(pidy<360))
                {
                        GUI_SetPenSize(8);
                        GUI_SetColor(0x000000);
                        GUI_DrawPoint(pidx+5,pidy+30);
                        //CurrentTextColor = 0x000000;
                        //PutPixel(,);
                       
                        pidx = pidx - 50;
                        pidy = pidy - 200;
                        write_buf[pidx][pidy/8] = write_buf[pidx][pidy/8]|(0x01<<pidy%8);
                        //GUI_Exec();
                }
                //WM_Paint(hWinmain);
                //WM_PAINT;
                //GUI_PID_StoreState(pidsta);
                break;
        }               
        case WM_PAINT:
        {
                GUI_SetPenSize(5);
                GUI_SetColor(0x000000);
                for(int iii = 0 ;iii < 400;iii++)
                {
                        for(int jjj = 0;jjj<20;jjj++)
                        {
                                for(int kkk = 0;kkk<8;kkk++)
                                {
                                        if(((write_buf[iii][jjj]>>kkk)&0x01)==1)
                                        {GUI_DrawPoint(50+iii,200+jjj*8+kkk);}
                                }
                        }
                }
                break;
        }       
[code]
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 05:00 , Processed in 0.039075 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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