FlutterEngine::ProcessExternalWindowMessage 简介
摘要
#当您向 Flutter 应用添加任何外部窗口时,您需要将其包含在窗口的应用生命周期逻辑中。要包含窗口,其 WndProc
函数应调用 FlutterEngine::ProcessExternalWindowMessage
。
受影响对象
#针对 Flutter 3.13 或更高版本构建的 Windows 应用程序,这些应用程序打开非 Flutter 窗口。
更改说明
#在 Windows 上实现应用程序生命周期涉及监听窗口消息以更新生命周期状态。为了使其他非 Flutter 窗口影响生命周期状态,它们必须将其窗口消息从其 WndProc
函数转发到 FlutterEngine::ProcessExternalWindowMessage
。此函数返回一个 std::optional<LRESULT>
,当收到消息但未消耗时,该函数为 std::nullopt
。当返回的结果有值时,表示消息已被消耗,并且 WndProc
中的进一步处理应该停止。
迁移指南
#以下示例 WndProc
过程调用 FlutterEngine::ProcessExternalWindowMessage
cpp
LRESULT Window::Messagehandler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
std::optional<LRESULT> result = flutter_controller_->engine()->ProcessExternalWindowMessage(hwnd, msg, wparam, lparam);
if (result.has_value()) {
return *result;
}
// Original contents of WndProc...
}
时间线
#包含于版本:3.14.0-3.0.pre
稳定版发布:3.16
参考
#相关 PR
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面最后更新于 2024-04-04。 查看源代码 或 报告问题.