INFO: Algorithm Creates Window Same Size As Full-Screen Window

ID: Q36319


The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK) versions 3.1, 3.0


SUMMARY

The algorithm listed below creates a window the size of the "standard" full-screen window.


MORE INFORMATION

Sample Code


    int winBorder, cxBorder, cyBorder,
        cxMargin, cxBAMargin, cyBAMargin,
        x, y, cx, cy;

    /* Get the user-defined border width */ 
    winBorder = GetProfileInt("windows", "BorderWidth", 5);
    /* It must be in the range of 0 < winBorder < 51 */ 
    if (winBorder < 1) {
        winBorder = 1;
    } else if (winBorder > 50) {
        winBorder = 50;
    }

    /* Get some internal system metrics to determine extra scaling */ 
    cxBorder = GetSystemMetrics (SM_CXBORDER);
    cyBorder = GetSystemMetrics (SM_CYBORDER);
    cxMargin = (cxBorder * winBorder) + cxBorder;

    /* Byte align the border */ 
    cxBAMargin = (((cxMargin + 7) & 0xFFF8) - cxMargin);
    cyBAMargin = cxBAMargin * cyBorder / cxBorder;

    x  = cxBAMargin;
    y  = cyBAMargin;
    cx = CW_USEDEFAULT;
    cy = 0;

    hWnd = CreateWindow(szAppName, szTitle, WS_OVERLAPPEDWINDOW,
                        x, y, cx, cy,
                        NULL, NULL, hInstance, NULL); 

Additional query words:

Keywords : kbcode kb16bitonly kbSDKPlatform kbGrpUser kbWndw
Version : WINDOWS:3.0,3.1
Platform : WINDOWS
Issue type : kbinfo


Last Reviewed: November 4, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.