硬汉嵌入式论坛

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

[emWin] emwin Framewin & 自定义消息问题

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2020-5-15 23:00:15 | 显示全部楼层 |阅读模式
初次接触emwin,遇到以下问题, 特来请教。

分别有 A B C 三个窗口,A -> B -> C , A 为B的父窗口, B为C的父窗口。 C 使用WM_SendToParent() 发送自定义消息给B 窗口。

如果在B窗口的创建函数中不调用 WM_SetCallback() 函数重新设置窗口的回调函数, C 发送的自定义消息 B收不到。为了保证在B窗口中收到C 发送的自定义消息, 调用WM_SetCallback().

A 窗口的 Frame Title 设置为 “A Windows“, B 窗口的 Frame Title 设置为 ”B Windows“,下面问题来了

1. 如果创建B窗口时, 不调用 WM_SetCallback(), A 窗口、 B窗口 的 Frame Titile 都显示正确, B 收不到C发送的自定义消息。

2. 创建B窗口时, 调用 WM_SetCallback(), B 可以接受C 发送的消息, 但是B的 Frame Title 显示 "A Windows", 其他功能正常。

尝试在 创建B窗口, 调用了 WM_SetCallback() 函数后调用 WM_Paint() \ WM_PaintWindowAndDescs() 等函数,均无效。

请问针对这个问题,有何建议。 谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-5-16 08:22:16 | 显示全部楼层
你的这几个神奇问题,暂时都没有遇到过。

针对你的每个情况,直接上模拟器上的测试代码,我试试。


特别注意FrameWin是由主窗口和客户区窗口组成的,你自己调用SetCallback要特别注意。
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2020-5-18 22:13:17 | 显示全部楼层
eric2013 发表于 2020-5-16 08:22
你的这几个神奇问题,暂时都没有遇到过。

针对你的每个情况,直接上模拟器上的测试代码,我试试。

谢谢回复,问题解决了。
把网络上资料的意思理解错了
只要在C窗口 调用WM_SendToParent 函数是, WM_HWIN参数要使用 WM_GetClientWindow 获取。 不用再B窗口调用 WM_SetCallbak 也可以接收到返回的自定义消息。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 22:03 , Processed in 0.209426 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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