OpenEdv-开源电子网

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

关于stemwin的MsgId

[复制链接]

65

主题

486

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2109
金钱
2109
注册时间
2015-11-14
在线时间
515 小时
发表于 2015-12-21 21:25:37 | 显示全部楼层 |阅读模式
5金钱
struct WM_MESSAGE {
  int MsgId;            /* type of message */
  WM_HWIN hWin;         /* Destination window */
  WM_HWIN hWinSrc;      /* Source window  */
  union {
    const void * p;            /* Some messages need more info ... Pointer is declared "const" because some systems (M16C) have 4 byte const, byte 2 byte default ptrs */
    int v;
    GUI_COLOR Color;
  } Data;
};
究竟MsgId什么时候变成WM_PAINT?手册没有说,原子的视频也没有说,我都乱死了

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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-21 22:12:11 | 显示全部楼层
在发送消息的时候!发送WM_PAINT这个消息的时候就会将WM_PAINT赋值给MsgId。如果你想要问我这段代码在哪里,不好意思我也不知道,因为EMWIN压根就不开放源码我哪能知道具体在哪里的。
开往春天的手扶拖拉机
回复

使用道具 举报

65

主题

486

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2109
金钱
2109
注册时间
2015-11-14
在线时间
515 小时
 楼主| 发表于 2015-12-21 23:23:33 | 显示全部楼层
回复【2楼】zuozhongkai:
---------------------------------
WM_PAINT 窗口变为无效并应重绘时,发送到窗口。
原子的移动窗口的程序,移动40次,为什么每次移动窗口都会触发WM_PAINT?移动了一次就变成无效了?
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-22 00:06:10 | 显示全部楼层
回复【3楼】单模先声:
---------------------------------
谁说窗口只能无效化一次?当一个窗口或者窗口的一部分需要重绘的时候就会使这个窗口无效化,然后重绘这个窗口,一旦窗口重绘完成那么这个所谓的无效化也就失效了。当下一次这个窗口需要重绘的时候又会无效化。
开往春天的手扶拖拉机
回复

使用道具 举报

65

主题

486

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2109
金钱
2109
注册时间
2015-11-14
在线时间
515 小时
 楼主| 发表于 2015-12-22 13:42:43 | 显示全部楼层
回复【4楼】zuozhongkai:
---------------------------------
我的意思是,为什么移动一次窗口,就刷一次屏?也就是为什么会调用回调函数
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-22 14:02:00 | 显示全部楼层
回复【5楼】单模先声:
---------------------------------
只要调用GUI_Exec()就会重绘无效区域,GUI_Delay()会调用GUI_Exec()
开往春天的手扶拖拉机
回复

使用道具 举报

65

主题

486

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2109
金钱
2109
注册时间
2015-11-14
在线时间
515 小时
 楼主| 发表于 2015-12-22 14:07:44 | 显示全部楼层
回复【6楼】zuozhongkai:
---------------------------------
first:GUI_Exec()在移动窗口的for后面,怎么会前面的函数去调用后面的函数呢?
second:WM_SetCallback(WM_HBKWIN, _cbBkWindow);这个是设置背景回调函数,为什么调用了这个函数才能使用GUI_Exec()?
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-22 14:33:45 | 显示全部楼层
1、for循环里面这么大的GUI_Delay()你是选择性失明了么?怎么就for循环以后调用了!



2、不明白你这句话什么意思,什么叫调用了WM_SetCallback(WM_HBKWIN, _cbBkWindow)才会使能GUI_Exec()

开往春天的手扶拖拉机
回复

使用道具 举报

65

主题

486

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2109
金钱
2109
注册时间
2015-11-14
在线时间
515 小时
 楼主| 发表于 2015-12-22 14:45:36 | 显示全部楼层
回复【8楼】zuozhongkai:
---------------------------------
我不是说这个啊,我是说WM重绘背景那个
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 15:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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