mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 10:46:33 +02:00
[PowerRename] Scale window size (#19378)
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <shellscalingapi.h>
|
||||||
|
|
||||||
#include "microsoft.ui.xaml.window.h"
|
#include "microsoft.ui.xaml.window.h"
|
||||||
#include <winrt/Microsoft.UI.Interop.h>
|
#include <winrt/Microsoft.UI.Interop.h>
|
||||||
@@ -65,32 +66,38 @@ namespace winrt::PowerRenameUI::implementation
|
|||||||
Microsoft::UI::WindowId windowId =
|
Microsoft::UI::WindowId windowId =
|
||||||
Microsoft::UI::GetWindowIdFromWindow(m_window);
|
Microsoft::UI::GetWindowIdFromWindow(m_window);
|
||||||
|
|
||||||
|
Microsoft::UI::Windowing::AppWindow appWindow =
|
||||||
|
Microsoft::UI::Windowing::AppWindow::GetFromWindowId(windowId);
|
||||||
|
appWindow.SetIcon(PowerRenameUIIco);
|
||||||
|
|
||||||
POINT cursorPosition{};
|
POINT cursorPosition{};
|
||||||
if (GetCursorPos(&cursorPosition))
|
if (GetCursorPos(&cursorPosition))
|
||||||
{
|
{
|
||||||
|
::Windows::Graphics::PointInt32 point{ cursorPosition.x, cursorPosition.y};
|
||||||
|
Microsoft::UI::Windowing::DisplayArea displayArea = Microsoft::UI::Windowing::DisplayArea::GetFromPoint(point, Microsoft::UI::Windowing::DisplayAreaFallback::Nearest);
|
||||||
|
|
||||||
HMONITOR hMonitor = MonitorFromPoint(cursorPosition, MONITOR_DEFAULTTOPRIMARY);
|
HMONITOR hMonitor = MonitorFromPoint(cursorPosition, MONITOR_DEFAULTTOPRIMARY);
|
||||||
MONITORINFOEX monitorInfo;
|
MONITORINFOEX monitorInfo;
|
||||||
monitorInfo.cbSize = sizeof(MONITORINFOEX);
|
monitorInfo.cbSize = sizeof(MONITORINFOEX);
|
||||||
GetMonitorInfo(hMonitor, &monitorInfo);
|
GetMonitorInfo(hMonitor, &monitorInfo);
|
||||||
RECT rect;
|
UINT x_dpi;
|
||||||
if (GetWindowRect(m_window, &rect))
|
GetDpiForMonitor(hMonitor, MONITOR_DPI_TYPE::MDT_EFFECTIVE_DPI, &x_dpi, &x_dpi);
|
||||||
{
|
UINT window_dpi = GetDpiForWindow(m_window);
|
||||||
int width = rect.right - rect.left;
|
|
||||||
int height = rect.bottom - rect.top;
|
|
||||||
|
|
||||||
MoveWindow(m_window,
|
int width = 1400;
|
||||||
monitorInfo.rcWork.left + (monitorInfo.rcWork.right - monitorInfo.rcWork.left - width) / 2,
|
int height = 800;
|
||||||
monitorInfo.rcWork.top + (monitorInfo.rcWork.bottom - monitorInfo.rcWork.top - height) / 2,
|
|
||||||
width,
|
winrt::Windows::Graphics::RectInt32 rect;
|
||||||
height,
|
// Scale window size
|
||||||
true);
|
rect.Width = (int32_t)(width * (float)window_dpi / x_dpi);
|
||||||
}
|
rect.Height = (int32_t)(height * (float)window_dpi / x_dpi);
|
||||||
|
// Center to screen
|
||||||
|
rect.X = displayArea.WorkArea().X + displayArea.WorkArea().Width / 2 - width / 2;
|
||||||
|
rect.Y = displayArea.WorkArea().Y + displayArea.WorkArea().Height / 2 - height / 2;
|
||||||
|
|
||||||
|
appWindow.MoveAndResize(rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
Microsoft::UI::Windowing::AppWindow appWindow =
|
|
||||||
Microsoft::UI::Windowing::AppWindow::GetFromWindowId(windowId);
|
|
||||||
appWindow.SetIcon(PowerRenameUIIco);
|
|
||||||
|
|
||||||
Title(hstring{ L"PowerRename" });
|
Title(hstring{ L"PowerRename" });
|
||||||
|
|
||||||
m_searchMRUList = winrt::single_threaded_observable_vector<hstring>();
|
m_searchMRUList = winrt::single_threaded_observable_vector<hstring>();
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>kernel32.lib;user32.lib;dwmapi.lib;Shcore.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<Link>
|
<Link>
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;dwmapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
<AdditionalDependencies>kernel32.lib;user32.lib;dwmapi.lib;Shcore.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user