diff options
author | John Ankarström <john@ankarstrom.se> | 2022-04-01 13:29:25 +0200 |
---|---|---|
committer | John Ankarström <john@ankarstrom.se> | 2022-04-01 13:29:25 +0200 |
commit | 7b7fcdfef7487770d3089bafaedf467e30ed3afe (patch) | |
tree | 9ae144830bbf4a4ed8b96da3459bef4f30579f30 /c/common.c | |
parent | 0b32a837283c4f90aee67f0721e38bf929a04882 (diff) | |
download | EpisodeBrowser-7b7fcdfef7487770d3089bafaedf467e30ed3afe.tar.gz |
Support per-monitor DPI.
Diffstat (limited to 'c/common.c')
-rw-r--r-- | c/common.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -4,6 +4,24 @@ #include "resource.h" #include "defs.h" +/* Scale integer according to DPI. */ +int Dpi(int i) +{ + extern int IDPI; + + if (IDPI == -1) { + HMODULE hModule; + FARPROC GetDpiForWindow; + extern HWND HWnd; + IDPI = 96; + hModule = LoadLibrary(TEXT("User32.dll")); + if (hModule && (GetDpiForWindow = GetProcAddress(hModule, "GetDpiForWindow"))) + IDPI = GetDpiForWindow(HWnd); + } + + return MulDiv(i, IDPI, 96); +} + /* Convert normal string to TSTR using given codepage. */ TCHAR * TszFromSz(const char *sz, int iCp) |