UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WindowsWindow.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6
9
11#include <Ole2.h>
12#include <oleidl.h>
14
16enum class EWindowTransparency;
17
24 : public FGenericWindow
25 , public IDropTarget
26{
27public:
28
31
32public:
33
36
39
45 APPLICATIONCORE_API HWND GetHWnd() const;
46
48
55
63
65 APPLICATIONCORE_API virtual void AdjustCachedSize(FVector2D& Size) const override;
66
67 virtual float GetDPIScaleFactor() const override
68 {
69 return DPIScaleFactor;
70 }
71
72 virtual void SetDPIScaleFactor(float Value) override
73 {
74 DPIScaleFactor = Value;
75 }
76
78 APPLICATIONCORE_API virtual bool IsManualManageDPIChanges() const override;
79
81 APPLICATIONCORE_API virtual void SetManualManageDPIChanges(const bool bManualDPIChanges) override;
82
85
88
91
92 float GetAspectRatio() const { return AspectRatio; }
93
96
97 // Attempts to retrieve the window's pixels using PrintWindow (https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-printwindow).
98 // Only the client area's pixels are retrieved, which excludes the title bar, border, etc.
100
101public:
102
103 // FGenericWindow interface
104
105 APPLICATIONCORE_API virtual void ReshapeWindow( int32 X, int32 Y, int32 Width, int32 Height ) override;
106 APPLICATIONCORE_API virtual bool GetFullScreenInfo( int32& X, int32& Y, int32& Width, int32& Height ) const override;
107 APPLICATIONCORE_API virtual void MoveWindowTo ( int32 X, int32 Y ) override;
108 APPLICATIONCORE_API virtual void BringToFront( bool bForce = false ) override;
109 APPLICATIONCORE_API virtual void HACK_ForceToFront() override;
110 APPLICATIONCORE_API virtual void Destroy() override;
111 APPLICATIONCORE_API virtual void Minimize() override;
112 APPLICATIONCORE_API virtual void Maximize() override;
113 APPLICATIONCORE_API virtual void Restore() override;
114 APPLICATIONCORE_API virtual void Show() override;
115 APPLICATIONCORE_API virtual void Hide() override;
117 virtual EWindowMode::Type GetWindowMode() const override { return WindowMode; }
118 APPLICATIONCORE_API virtual bool IsMaximized() const override;
119 APPLICATIONCORE_API virtual bool IsMinimized() const override;
120 APPLICATIONCORE_API virtual bool IsVisible() const override;
121 APPLICATIONCORE_API virtual bool GetRestoredDimensions(int32& X, int32& Y, int32& Width, int32& Height) override;
122 APPLICATIONCORE_API virtual void SetWindowFocus() override;
123 APPLICATIONCORE_API virtual void SetOpacity( const float InOpacity ) override;
124 APPLICATIONCORE_API virtual void Enable( bool bEnable ) override;
125 APPLICATIONCORE_API virtual bool IsPointInWindow( int32 X, int32 Y ) const override;
126 APPLICATIONCORE_API virtual int32 GetWindowBorderSize() const override;
127 APPLICATIONCORE_API virtual int32 GetWindowTitleBarSize() const override;
128 virtual void* GetOSWindowHandle() const override { return HWnd; }
129 APPLICATIONCORE_API virtual bool IsForegroundWindow() const override;
130 APPLICATIONCORE_API virtual bool IsFullscreenSupported() const override;
131 APPLICATIONCORE_API virtual void SetText(const TCHAR* const Text) override;
132 APPLICATIONCORE_API virtual void DrawAttention(const FWindowDrawAttentionParameters& Parameters) override;
133
134public:
135
136 // IUnknown interface
137
141
142public:
143
144 // IDropTarget interface
145
146 APPLICATIONCORE_API virtual HRESULT STDCALL DragEnter( __RPC__in_opt IDataObject *DataObjectPointer, ::DWORD KeyState, POINTL CursorPosition, __RPC__inout ::DWORD *CursorEffect) override;
147 APPLICATIONCORE_API virtual HRESULT STDCALL DragOver( ::DWORD KeyState, POINTL CursorPosition, __RPC__inout ::DWORD *CursorEffect) override;
148 APPLICATIONCORE_API virtual HRESULT STDCALL DragLeave( void ) override;
149 APPLICATIONCORE_API virtual HRESULT STDCALL Drop( __RPC__in_opt IDataObject *DataObjectPointer, ::DWORD KeyState, POINTL CursorPosition, __RPC__inout ::DWORD *CursorEffect) override;
150
151private:
152
155
156 APPLICATIONCORE_API void UpdateVisibility();
157
160 APPLICATIONCORE_API HRGN MakeWindowRegionObject(bool bIncludeBorderWhenMaximized) const;
161
162 APPLICATIONCORE_API void DisableTouchFeedback();
163
164private:
165
167 FWindowsApplication* OwningApplication;
168
170 HWND HWnd;
171
173 int32 RegionWidth;
174 int32 RegionHeight;
175
177 EWindowMode::Type WindowMode;
178
180 int32 OLEReferenceCount;
181
183 WINDOWPLACEMENT PreFullscreenWindowPlacement;
184
186 WINDOWPLACEMENT PreParentMinimizedWindowPlacement;
187
192 int32 VirtualWidth;
193 int32 VirtualHeight;
194
196 float AspectRatio;
197
199 bool bIsVisible : 1;
200
202 bool bIsFirstTimeVisible : 1;
203
205 bool bInitiallyMinimized : 1;
206 bool bInitiallyMaximized : 1;
207
212 float DPIScaleFactor;
213
215 bool bHandleManualDPIChanges = false;
216};
#define STDCALL
Definition AndroidPlatform.h:136
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
EWindowTransparency
Definition GenericWindowDefinition.h:35
uint32 Size
Definition VulkanMemory.cpp:4034
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GenericWindow.h:94
Definition WindowsApplication.h:287
Definition WindowsWindow.h:26
virtual APPLICATIONCORE_API void HACK_ForceToFront() override
Definition WindowsWindow.cpp:640
virtual APPLICATIONCORE_API HRESULT STDCALL Drop(__RPC__in_opt IDataObject *DataObjectPointer, ::DWORD KeyState, POINTL CursorPosition, __RPC__inout ::DWORD *CursorEffect) override
Definition WindowsWindow.cpp:1332
virtual APPLICATIONCORE_API void Maximize() override
Definition WindowsWindow.cpp:678
APPLICATIONCORE_API HWND GetHWnd() const
Definition WindowsWindow.cpp:343
APPLICATIONCORE_API HRESULT STDCALL QueryInterface(REFIID iid, void **ppvObject) override
Definition WindowsWindow.cpp:1163
virtual APPLICATIONCORE_API void SetOpacity(const float InOpacity) override
Definition WindowsWindow.cpp:993
virtual APPLICATIONCORE_API void SetManualManageDPIChanges(const bool bManualDPIChanges) override
Definition WindowsWindow.cpp:945
static APPLICATIONCORE_API const TCHAR AppWindowClass[]
Definition WindowsWindow.h:30
virtual float GetDPIScaleFactor() const override
Definition WindowsWindow.h:67
static APPLICATIONCORE_API TSharedRef< FWindowsWindow > Make()
Definition WindowsWindow.cpp:46
virtual APPLICATIONCORE_API void SetWindowFocus() override
Definition WindowsWindow.cpp:980
float GetAspectRatio() const
Definition WindowsWindow.h:92
APPLICATIONCORE_API void OnTransparencySupportChanged(EWindowTransparency NewTransparency)
Definition WindowsWindow.cpp:348
virtual APPLICATIONCORE_API bool IsFullscreenSupported() const override
Definition WindowsWindow.cpp:1122
virtual APPLICATIONCORE_API bool IsManualManageDPIChanges() const override
Definition WindowsWindow.cpp:940
APPLICATIONCORE_API void OnParentWindowRestored()
Definition WindowsWindow.cpp:973
virtual APPLICATIONCORE_API void SetText(const TCHAR *const Text) override
Definition WindowsWindow.cpp:1128
APPLICATIONCORE_API bool IsEnabled()
Definition WindowsWindow.cpp:1009
virtual APPLICATIONCORE_API void ReshapeWindow(int32 X, int32 Y, int32 Width, int32 Height) override
Definition WindowsWindow.cpp:484
virtual APPLICATIONCORE_API void AdjustCachedSize(FVector2D &Size) const override
Definition WindowsWindow.cpp:950
virtual APPLICATIONCORE_API bool IsMinimized() const override
Definition WindowsWindow.cpp:891
virtual APPLICATIONCORE_API int32 GetWindowBorderSize() const override
Definition WindowsWindow.cpp:1094
virtual APPLICATIONCORE_API bool GetRestoredDimensions(int32 &X, int32 &Y, int32 &Width, int32 &Height) override
Definition WindowsWindow.cpp:903
virtual void SetDPIScaleFactor(float Value) override
Definition WindowsWindow.h:72
virtual APPLICATIONCORE_API bool IsVisible() const override
Definition WindowsWindow.cpp:897
APPLICATIONCORE_API ~FWindowsWindow()
Definition WindowsWindow.cpp:30
APPLICATIONCORE_API ULONG STDCALL Release(void) override
Definition WindowsWindow.cpp:1185
virtual APPLICATIONCORE_API HRESULT STDCALL DragLeave(void) override
Definition WindowsWindow.cpp:1318
virtual APPLICATIONCORE_API bool GetFullScreenInfo(int32 &X, int32 &Y, int32 &Width, int32 &Height) const override
Definition WindowsWindow.cpp:562
virtual APPLICATIONCORE_API void DrawAttention(const FWindowDrawAttentionParameters &Parameters) override
Definition WindowsWindow.cpp:1133
APPLICATIONCORE_API void OnParentWindowMinimized()
Definition WindowsWindow.cpp:965
virtual APPLICATIONCORE_API void Hide() override
Definition WindowsWindow.cpp:755
virtual APPLICATIONCORE_API void Destroy() override
Definition WindowsWindow.cpp:646
APPLICATIONCORE_API ULONG STDCALL AddRef(void) override
Definition WindowsWindow.cpp:1178
virtual APPLICATIONCORE_API void SetWindowMode(EWindowMode::Type NewWindowMode) override
Definition WindowsWindow.cpp:765
virtual APPLICATIONCORE_API bool IsPointInWindow(int32 X, int32 Y) const override
Definition WindowsWindow.cpp:1083
virtual APPLICATIONCORE_API bool IsForegroundWindow() const override
Definition WindowsWindow.cpp:1117
virtual APPLICATIONCORE_API void Restore() override
Definition WindowsWindow.cpp:694
virtual EWindowMode::Type GetWindowMode() const override
Definition WindowsWindow.h:117
virtual APPLICATIONCORE_API bool IsMaximized() const override
Definition WindowsWindow.cpp:885
virtual void * GetOSWindowHandle() const override
Definition WindowsWindow.h:128
virtual APPLICATIONCORE_API void BringToFront(bool bForce=false) override
Definition WindowsWindow.cpp:607
virtual APPLICATIONCORE_API void Show() override
Definition WindowsWindow.cpp:710
APPLICATIONCORE_API bool IsRegularWindow() const
Definition WindowsWindow.cpp:1158
virtual APPLICATIONCORE_API int32 GetWindowTitleBarSize() const override
Definition WindowsWindow.cpp:1112
APPLICATIONCORE_API TArray< FColor > GetWindowPixels(uint32 &OutWidth, uint32 &OutHeight)
Definition WindowsWindow.cpp:1014
virtual APPLICATIONCORE_API void MoveWindowTo(int32 X, int32 Y) override
Definition WindowsWindow.cpp:581
APPLICATIONCORE_API void AdjustWindowRegion(int32 Width, int32 Height)
Definition WindowsWindow.cpp:472
virtual APPLICATIONCORE_API void Minimize() override
Definition WindowsWindow.cpp:662
Definition Array.h:670
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Type
Definition GenericWindow.h:17
Definition GenericWindow.h:80