5#include <helper/SDpiScale.h>
6#include <wtl.mini/msgcrack.h>
7#include <wtl.mini/souimisc.h>
38 int nScale = dpi * 100 / 96;
50 T *pT =
static_cast<T *
>(
this);
51 if (nScale != pT->GetRoot()->GetScale())
53 pT->SetScale(nScale, desRect);
63 int nScale = GetWindowScale(hWnd);
68 ::GetWindowRect(hWnd, (RECT *)&rc);
70 sz.cx = sz.cx * nScale / 100;
71 sz.cy = sz.cy * nScale / 100;
72 CPoint ntl = rc.CenterPoint();
73 ntl.Offset((-sz.cx + rc.Size().cx) / 2, (-sz.cy + rc.Size().cy) / 2);
89 BOOL
ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID = 0)
94 if (uMsg == WM_INITDIALOG)
100 if (uMsg == WM_DPICHANGED)
102 OnDpiChanged((WORD)HIWORD(wParam), (RECT *
const)lParam);
virtual bool IsDpiAware() const
检查是否支持DPI感知
void OnDpiChanged(WORD dpi, const RECT *desRect)
处理DPI变化事件
void ScaleHost(HWND hWnd)
根据DPI缩放窗口
virtual void HandleScaleChange(WORD nScale, const RECT *desRect)
处理缩放变化
BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT &lResult, DWORD dwMsgMapID=0)
处理窗口消息
static int NormalizeScale(int nScale)
标准化放大比例