硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2079|回复: 3
收起左侧

[emWin] 使用stemwin的时候界面刷新的问题

[复制链接]

1

主题

2

回帖

1

积分

新手上路

积分
1
发表于 2017-3-23 17:07:48 | 显示全部楼层 |阅读模式
我用guibuilder做了一个界面。然后想在上面涂鸦,但是重绘界面的话只能画出最后一次点击的点(类似于鼠标的光标效果),我想把画的每个点都显示在屏幕上,难道是我的思路错了?下面是我自己加的触摸消息和重绘消息
// USER START (Optionally insert additional message handling)
                case WM_TOUCH :
                        GUI_TOUCH_GetState(&State);
                  WM_InvalidateWindow(pMsg->hWin);
                break;
               
                case WM_PAINT:
                 if(State.x>50)
      GUI_FillCircle(State.x,State.y,3);
                        break;
  // USER END
回复

使用道具 举报

1

主题

2

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-23 17:19:27 | 显示全部楼层
我理解的重绘相当于是把界面恢复成我用builder做出来的模板再加上WM_PAINT:里做的更改,我是想能不能每次画点之后,更改到模板里面去,这样就能有画板的效果。不知道我这个想法对不对,刚学emwin,还望大牛们指点······
回复

使用道具 举报

11

主题

130

回帖

168

积分

初级会员

积分
168
发表于 2017-3-23 23:23:45 | 显示全部楼层
重绘的内容就是WM_PAINT消息里的内容。你在WM_TOUCH消息里使窗口无效会触发WM_PAINT消息,自然就只有一个点显示。可以试试在WM_TOUCH里获取点,然后WM_SelectWindow,最后画点。这个简单方法要是不行的话就把点存起来,然后一起放在WM_PAINT消息里绘制吧。
回复

使用道具 举报

1

主题

2

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-3-24 20:17:47 | 显示全部楼层

回 有梦为马 的帖子

有梦为马:重绘的内容就是WM_PAINT消息里的内容。你在WM_TOUCH消息里使窗口无效会触发WM_PAINT消息,自然就只有一个点显示。可以试试在WM_TOUCH里获取点,然后WM_SelectWindow,最后画点。这个简单方法要是不行的话就把点存起来,然后一起放在WM_PAINT消息里绘制吧。 (2017-03-23 23:23) 
我触摸之后获取点,然后只无效这个点为中心的区域,再重绘就OK了。
十分感谢。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-19 10:23 , Processed in 0.046054 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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