#include <windows.h>

LRESULT CALLBACK wndproc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp)
{
    if(msg == WM_PAINT)
    {
        HDC dc;
        PAINTSTRUCT ps;
        HFONT fnt, oldfont;
        dc = BeginPaint(wnd, &ps);
        SetMapMode(dc, MM_ANISOTROPIC);
        /* SetGraphicsMode(dc, GM_ADVANCED);*/
        fnt = CreateFont(-20, 0, 0, 0, FW_MEDIUM,
                        FALSE, FALSE, FALSE, ANSI_CHARSET,
                        OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
                        DEFAULT_QUALITY, DEFAULT_PITCH, "Arial");
                        
        oldfont = SelectObject(dc, fnt);
        
        MoveToEx(dc,0,50, NULL);
        LineTo(dc,100, 50);
        
        TextOut(dc, 20, 50, "F", 1);

        SetWindowExtEx(dc, 800, 800, NULL);
        SetViewportExtEx(dc, 800, -800, NULL);
        
        
        SelectObject(dc, oldfont);
        SelectObject(dc, fnt);
        
        TextOut(dc, 50, -50, "F", 1);
        
        DeleteObject(SelectObject(dc, oldfont));
        
        EndPaint(wnd, &ps);
    }
    else if(msg == WM_DESTROY)
        PostQuitMessage(0);
    else
        DefWindowProc(wnd, msg, wp, lp);
}

int main(void)
{
    static WNDCLASS wc = {0};
    MSG msg;
    HWND mainwnd;
    wc.lpfnWndProc = wndproc;
    wc.hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW));
    wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1);
    wc.lpszClassName = "sclfont";
    RegisterClass(&wc);
  
    mainwnd = CreateWindow("sclfont", "Font scaling test", WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                          CW_USEDEFAULT, CW_USEDEFAULT, 200, 200, 0, 0, 0, 0);
  
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}

