Wyświetlanie i wyjście WYSIWYG
Większość aplikacji próbuje obsługiwać dane wyjściowe WYSIWYG (co widzisz). Oznacza to, że tekst narysowany czcionką pogrubioną Helvetica 10-punktową w oknie aplikacji powinien mieć podobny wygląd podczas drukowania. Uzyskanie prawdziwych danych wyjściowych WYSIWYG jest praktycznie niemożliwe, a nawet niepożądane w większości przypadków. Wynika to częściowo z różnic w technologiach wideo i drukarek; piksel na ekranie jest zazwyczaj większy niż kropka na wspólnej drukarce laserowej. Odległości wyświetlania różnią się również; użytkownik komputera zazwyczaj znajduje się około dwóch metrów od ekranu, ale oczy czytelnika są zwykle jedną stopą lub mniej od drukowanej strony.
Aby zrekompensować różnice czytelności między ekranami a wydrukowaną stroną, system obsługuje jednostkę o nazwie cal logiczny, który jest zawsze określony w pikselach. W przypadku wyświetlania wideo logiczna cala jest zawsze większa niż cala fizycznego, aby zrekompensować dłuższą odległość oglądania i (ogólnie) grubszą rozdzielczość. W przypadku drukarek cal logiczny jest zawsze równy fizycznemu calowi.
Aby uzyskać efekt WYSIWYG podczas rysowania tekstu, występują dwa powiązane problemy: tworzenie pojedynczych znaków wygląda tak samo i układ strony niezależnej od urządzenia. Aby rozwiązać pierwszy problem, aplikacja może użyć funkcji CreateFont, aby określić nazwę i rozmiar czcionki idealnej (lub logicznej), a następnie wywołać funkcję SelectObject w celu zidentyfikowania kontekstu urządzenia wyświetlania lub drukarki. Gdy aplikacja wywołuje SelectObject , system wybiera czcionkę fizyczną, która jest najbliżej możliwego dopasowania do określonej czcionki logicznej. Gdy system wybierze czcionkę wyświetlaną, wybierze czcionkę fizyczną większą niż rzeczywisty rozmiar. Dzieje się tak z powodu większego cala logicznego na wyświetlaczu. Z perspektywy użytkownika wydaje się jednak być bardzo zbliżony do prawidłowej wysokości. Gdy system wybierze czcionkę drukarki, wybierze czcionkę fizyczną, która jest rzeczywiście żądanym rozmiarem. Aby uzyskać więcej informacji na temat czcionek i danych wyjściowych tekstu, zobacz Czcionki i tekst.
Drugi problem, który dotyczy układu strony niezależnego od urządzenia, można rozwiązać za pomocą metryk TrueType. Jest to prawdą nawet w przypadku zachowania zgodności z 16-bitowymi wersjami systemu Windows. Aby uzyskać więcej informacji, zobacz Using Portable TrueType Metrics.
Aby uzyskać efekt WYSIWYG podczas rysowania grafiki map bitowych, aplikacja może pobrać szerokość i wysokość, w calach logicznych, ekranu i strony drukowanej. Korzystając z tych wartości, aplikacja może tworzyć czynniki skalowania w poziomie i pionie, aby zachować proporcję obrazów map bitowych podczas ich rysowania na drukarce. Aby uzyskać więcej informacji na temat map bitowych i danych wyjściowych mapy bitowej, zobacz Bitmaps.