Introducción de FlutterEngine::ProcessExternalWindowMessage
Las ventanas externas deben llamar a ProcessExternalWindowMessage para ser tomadas en cuenta en los eventos del ciclo de vida de la aplicación.
Resumen
#Cuando añades ventanas externas a tu aplicación de Flutter,
debes incluirlas en la lógica del ciclo de vida de la aplicación de Windows.
Para incluir la ventana, su función WndProc debe invocar
FlutterEngine::ProcessExternalWindowMessage.
Quiénes se ven afectados
#Aplicaciones de Windows creadas con Flutter 3.13 o posterior que abren ventanas que no son de Flutter.
Descripción del cambio
#La implementación del ciclo de vida de la aplicación en Windows implica escuchar los mensajes
de la ventana para actualizar el estado del ciclo de vida. Para que las ventanas adicionales
que no son de Flutter afecten al estado del ciclo de vida, deben reenviar sus
mensajes de ventana a FlutterEngine::ProcessExternalWindowMessage desde sus
funciones WndProc. Esta función devuelve un std::optional<LRESULT>, el cual
es std::nullopt cuando se recibe el mensaje pero no se consume. Cuando el
resultado devuelto tiene un valor, el mensaje ha sido consumido, y el procesamiento adicional
en WndProc debe cesar.
Guía de migración
#El siguiente procedimiento WndProc de ejemplo invoca
FlutterEngine::ProcessExternalWindowMessage:
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...
}
Timeline
#Introducido en la versión: 3.14.0-3.0.pre
En la versión estable: 3.16
Referencias
#PRs relevantes:
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.