Setting Drawing Units

Applications can use GpiCreatePS to set the device transformation so that it uses page units that might be more convenient than pels; for example, centimeters. If the output device is a screen, the application first opens a device context by calling WinOpenWindowDC. If the output device is a printer or plotter, the application opens a printer or plotter device context by calling DevOpenDC. The application then creates a presentation space by calling GpiCreatePS, specifying low-metric page units and associating the device context with the presentation space. The following figure is an example of how to set drawing units.

    HWND hwnd;                    /* Client-window handle         */
    HAB hab;                      /* Anchor-block handle          */
    HPS hps;                      /* Presentation-space handle    */
    HDC hdc;                      /* Device-context handle        */
    SIZEL sizlPage;               /* Presentation-page rectangle  */

    hdc = WinOpenWindowDC(hwnd);
    sizlPage.cx = 0;
    sizlPage.cy = 0;
    hps = GpiCreatePS(hab,        /* Anchor-block handle          */
          hdc,                    /* Device-context handle        */
          &sizlPage,              /* Address of SIZEL structure   */
          PU_LOMETRIC             /* Centimeters as page units    */
          | GPIA_ASSOC);          /* Associates window DC with PS */


[Back: Using Coordinate Spaces and Transformations]
[Next: Translating, Rotating, and Scaling a Picture]