-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于托管窗口丢失消息的问题 #89
Comments
MiniGUI 内部不会主动过滤 CLOSE 消息。 5.0 版本开始,多线程模式下的托管机制发生了一些变化,你可能需要检查这些主窗口的托管关系,也就是创建主窗口时的 hHosting 设置。 如果不能解决,请给出重现问题用的代码。 |
#include <minigui/common.h>
}
}
}
}
}
}
} int MiniGUIMain (int argc, const char* argv[])
} |
这个是运行在线程模式下的 如果点击555的按钮,广播给所有的窗口(除了根窗口)一条关闭消息,但是也只是关闭了当前窗口,不会关闭其他窗口 |
We have fixed this bug. It caused by a bug in the implementation of Please fetch the latest code from Thanks a lot! |
你好,目前已知一个崩溃缺陷,这个缺陷非常紧急,如果有时间允许我会提供一个demo,还请官方先查一下; |
#include <minigui/common.h> static LRESULT pwdlogin_ime_next_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
}
}
}
}
} int MiniGUIMain (int argc, const char* argv[])
} |
线程模式 甚至多次点击2222和====或者随意点击按钮,只要多次点击====都会出现崩溃。 |
这段代码存在访问已释放内存的问题。将 SendMessage(hWndParent,MSG_CLOSE,0,0); 修改为使用 简单解释一下问题所在:按钮被单击时,系统将直接调用已注册的通知回调函数,回调函数返回后,按钮的代码仍然会继续执行。但因为在通知的回调函数中调用 因此,通常我们使用 |
我们这边用的是SendNotifyMessage,稍等,我重新写一个demo,上面的有点问题 |
#include <minigui/common.h> static LRESULT pwdlogin_ime_next_proc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
}
}
}
}
} int MiniGUIMain (int argc, const char* argv[])
} |
你好,问题已经复现。 点击1111, |
目前看来已修复,谢谢! |
不客气,感谢您提交的复现代码! |
你好,项目打算将3.0升级成5.0,但是遇到一个问题:
场景一:
模拟一个注册账号流程,有一个主界面A,两个子界面B、C
A窗口用于输入账户名,B窗口用于输入手机号,C窗口用于输入验证码;
A窗口创建在根窗口上,A窗口创建B窗口,B窗口创建C窗口,在创建之后A和B都不关闭;
当用户点击C窗口输入完成验证码以后,C窗口收到注册账号完成的标志,然后然后通过循环依次给自己、B、A发一个Close消息依,经过测试发现,关闭完C窗口自己以后,B和A的close消息虽然发出去了,但是都不处理,像是被丢了,但是3.0不会出现这个情况。
场景二:
模拟一个设置界面:有一个手机桌面界面ROOT、主设置界面A、基础设置界面B、时间设置界面C;
用户需要设置时间,那么要通过ROOT到A再到B再到C才可以进行设置时间。
当前需求是:用户如果在C界面20秒没有操作,那么ROOT界面会对所有的界面进行消息广播,给A、B、C界面广播一个close的消息,让当前所有的界面都关闭,从而做到超时退出到手机桌面,但是实际测试的时候发现,只有C界面被关闭了,回到了基础设置B界面。并没有回到ROOT界面。同样的情况3.0并不出现。 当C被超时广播的消息关闭以后,回到了B界面,再过20秒,B界面会被关闭。相当于本来20秒可以回到ROOT界面的,但是现在要ABC三个界面都超时20秒才可以。
是不是底层丢了消息?
The text was updated successfully, but these errors were encountered: