This example shows how WinTrackRect can be used to allow a user size a rectangle on the screen.

#define INCL_WINTRACKRECT

#include <os2.h>

BOOL MyTrackRoutine(HAB hab, HPS hps, PRECTL rcl)
{
  TRACKINFO track;

  track.cxBorder = 4;
  track.cyBorder = 4;  /* 4 pel wide lines used for rectangle */
  track.cxGrid = 1;
  track.cyGrid = 1;    /* smooth tracking with mouse */
  track.cxKeyboard = 8;
  track.cyKeyboard = 8; /* faster tracking using cursor keys */

  WinCopyRect(hab, &track.rclTrack, rcl);   /* starting point */

  WinSetRect(hab, &track.rclBoundary, 0, 0, 640, 480); /* bounding rectangle */

  track.ptlMinTrackSize.x = 10;
  track.ptlMinTrackSize.y = 10;  /* set smallest allowed size of rectangle */
  track.ptlMaxTrackSize.x = 200;
  track.ptlMaxTrackSize.y = 200; /* set largest allowed size of rectangle */

  track.fs = TF_MOVE;

  if (WinTrackRect(HWND_DESKTOP, hps, &track) )
  {
    /* if successful copy final position back */
    WinCopyRect(hab, rcl, &track.rclTrack);
    return(TRUE);
  }
  else
  {
    return(FALSE);
  }
}


[Back] [Next]