diff options
author | crupest <crupest@outlook.com> | 2022-01-12 23:01:40 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-01-12 23:01:40 +0800 |
commit | ab63f82a383804fe1787c0daf2b5d98512fa7398 (patch) | |
tree | 89681fca2f762e7e3ca264bba56d24a975e4661c | |
parent | c409caa8873e25699fc10ae435e8d123685f28f3 (diff) | |
download | cru-ab63f82a383804fe1787c0daf2b5d98512fa7398.tar.gz cru-ab63f82a383804fe1787c0daf2b5d98512fa7398.tar.bz2 cru-ab63f82a383804fe1787c0daf2b5d98512fa7398.zip |
...
-rw-r--r-- | include/cru/win/gui/Window.hpp | 4 | ||||
-rw-r--r-- | src/win/gui/Window.cpp | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/include/cru/win/gui/Window.hpp b/include/cru/win/gui/Window.hpp index 7a982da7..41eac5fa 100644 --- a/include/cru/win/gui/Window.hpp +++ b/include/cru/win/gui/Window.hpp @@ -173,8 +173,8 @@ class WinNativeWindow : public WinNativeResource, public virtual INativeWindow { WinUiApplication* application_; WindowStyleFlag style_flag_{}; - WindowVisibilityType visibility_{}; - Rect client_rect_; + WindowVisibilityType visibility_ = WindowVisibilityType::Hide; + Rect client_rect_{100, 100, 400, 300}; HWND hwnd_ = nullptr; WinNativeWindow* parent_window_ = nullptr; diff --git a/src/win/gui/Window.cpp b/src/win/gui/Window.cpp index 827cc0a8..7ee2fb71 100644 --- a/src/win/gui/Window.cpp +++ b/src/win/gui/Window.cpp @@ -3,6 +3,7 @@ #include "WindowManager.hpp" #include "cru/common/Logger.hpp" #include "cru/platform/Check.hpp" +#include "cru/platform/graphics/NullPainter.hpp" #include "cru/platform/gui/Base.hpp" #include "cru/platform/gui/DebugFlags.hpp" #include "cru/platform/gui/Window.hpp" @@ -16,6 +17,7 @@ #include <windowsx.h> #include <winuser.h> +#include <memory> namespace cru::platform::gui::win { namespace { @@ -76,7 +78,7 @@ void WinNativeWindow::Close() { if (hwnd_) ::DestroyWindow(hwnd_); } -void WinNativeWindow::SetParent(INativeWindow *parent) { +void WinNativeWindow::SetParent(INativeWindow* parent) { auto p = CheckPlatform<WinNativeWindow>(parent, GetPlatformId()); parent_window_ = p; @@ -204,8 +206,11 @@ void WinNativeWindow::RequestRepaint() { } std::unique_ptr<graphics::IPainter> WinNativeWindow::BeginPaint() { - return std::make_unique<graphics::win::direct::D2DWindowPainter>( - window_render_target_.get()); + if (hwnd_) + return std::make_unique<graphics::win::direct::D2DWindowPainter>( + window_render_target_.get()); + else + return std::make_unique<graphics::NullPainter>(); } void WinNativeWindow::SetCursor(std::shared_ptr<ICursor> cursor) { |