#ifndef RUNNER_FLUTTER_WINDOW_H_ #define RUNNER_FLUTTER_WINDOW_H_ #include #include #include #include #include #include "win32_window.h" // A window that does nothing but host a Flutter view. class FlutterWindow : public Win32Window { public: // Creates a new FlutterWindow hosting a Flutter view running |project|. explicit FlutterWindow(const flutter::DartProject& project); virtual ~FlutterWindow(); protected: // Win32Window: bool OnCreate() override; void OnDestroy() override; LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, LPARAM const lparam) noexcept override; private: // 按给定的视频宽高比(宽/高)调整窗口:保持窗口宽度不变, // 高度按比例计算;若高度超出屏幕工作区,则以屏幕高度为准 // 反推出合适的窗口宽高。 void ResizeToVideoAspect(double aspect); // The project to run. flutter::DartProject project_; // The Flutter instance hosted by this window. std::unique_ptr flutter_controller_; // 与 Dart 层通信的窗口控制通道。 std::unique_ptr> window_channel_; }; #endif // RUNNER_FLUTTER_WINDOW_H_