Mamy problem z jedną z naszych istniejących aplikacji opartych na systemie Win32 MFC. Nie wyświetla się poprawnie na ekranach z ustawieniami wysokiej rozdzielczości. Dokładniej w systemie Windows XP z wybraną rozdzielczością 120 dpi w aplikacji jest kilka miejsc, w których tekst się zwiększa, ale nie ich pojemniki (tekst przepełnia jego przycisk itp.). Dzieje się tak również w systemie Windows 7 (i Vista), gdy wybrana jest opcja> 96 dpi i wybrano "Użyj skalowania w stylu XP". Jeśli nie wybrano skalowania stylu XP, to rozumiem, że Win7 zamiast tego używa wirtualizacji DPI. Wszystko wygląda dobrze, gdy korzysta się z wirtualizacji DPI (rzeczy są rozmyte, ale przynajmniej są poprawne). Domyślnie w Win7 120 dpi używa skalowania w stylu xp, a następne ustawienie (144 dpi) nie. Tak więc nasza aplikacja wygląda poprawnie przy 144 dpi, ale źle przy 120 dpi.Aplikacja systemu Windows - problemy z DPI
Jeśli edytuję manifest aplikacji, aby zadeklarować aplikację jako "Świadoma DPI", to ta tura wirtualizacji DPI (ale nie skalowania dpi w stylu XP) i to mnie nie doprowadzi. Rzeczy wciąż wyglądają bardzo źle (brak zmian w przypadku 120 dpi, 144 dpi teraz zepsute).
Potrzebuję rozwiązać ten problem i próbowałem już czytać na temat zagadnień DPI/skalowania w ogóle i to było doświadczenie edukacyjne. Do tej pory nie znalazłem odpowiedniego rozwiązania. W tej chwili nie mam zamiaru robić dokładnej i poprawnej poprawki (aplikacja poprawnie skaluje wszystkie elementy zgodnie z dpi). Wymagałoby to wiele przeróbek. Myślę, że są naprawdę dwa możliwe rozwiązania. Jednym z nich jest wyłączenie jakiegokolwiek skalowania DPI razem. Oznaczałoby to, że jeśli system Win7 użytkownika został ustawiony na 120 dpi, wszystko w systemie byłoby dobre/duże, ale nasza aplikacja wyglądałaby poprawnie, ale byłaby mała w porównaniu ze wszystkim innym aplikacjami. Drugim rozwiązaniem byłoby dla niektórych, jak zmusić naszą aplikację do korzystania z wirtualizacji DPI, ale nigdy nie używać skalowania w stylu XP XP. Chcę, aby była to zmiana po stronie aplikacji i nie polegać na tym, że użytkownicy końcowi muszą wprowadzać zmiany w konfiguracji systemu Windows.
Do tej pory nie znalazłem sposobu na rozwiązanie.
Czy ktoś bardziej kompetentny w tej sprawie może odpowiedzieć i wskazać mi właściwy sposób?
Dzięki
Czy problem występuje w kodzie układu lub w kodzie rysunku? Na przykład, czy problem polega na tym, że robisz przyciski i inne standardowe elementy sterujące x przez y pikseli, czy też masz problem z tym, że masz kod, który rysuje własne kontrolki (np. Za pomocą wywołań GDI) o stałych rozmiarach? Jak sobie radzisz z układem? Formularze? Szablony okien dialogowych? Niestandardowy kod? –
Nie ma tu magii, wystarczy powiększyć okna. Lub mniejsze czcionki, wybierz swoją truciznę. –