L_CreateZoomView

#include "l_bitmap.h"

L_INT EXT_FUNCTION L_CreateZoomView(hWnd, pBitmap, pZoomViewProps.)

HWND hWnd;

/* handle to a window */

pBITMAPHANDLE pBitmap;

/* pointer to the bitmap handle */

pZOOMVIEWPROPS pZoomViewProps;

/* pointer to a structure */

Creates a new Zoom View and associates it with the specified window. This function is available in the Document/Medical Toolkits.

Parameter

Description

hWnd

Handle to a window.

pBitmap

Pointer to the bitmap handle that references the bitmap displayed in hWnd.

pZoomViewProps

Pointer to a ZOOMVIEWPROPS structure containing options for controlling the behavior of the Zoom View.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

Starts a Zoom View procedure by attaching a zoomed view to the specified window.

Note:

Anytime the window's size changes or the bitmap changes, call the L_UpdateZoomView function in order to update the zoomed view settings.

When the zoomed view is no longer needed, call the L_DestroyZoomView function to stop the specified Zoom View procedure and to detach it from the window handle.

Required DLLs and Libraries

LTZMV

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Windows 95 / 98 / Me, Windows 2000 / XP.

See Also

Functions:

L_WindowHasZoomView, L_GetZoomViewProps, L_UpdateZoomView, L_DestroyZoomView, L_GetZoomViewsCount

Topics:

Using the Zoom View

 

Raster Image Functions: Displaying Images

 

Using the Magnifying Glass

Example

/*
   This sample shows how you can start and stop the Zoom View. It also
   demonstrates how to provide a callback function and how this can help you 
    to update Zoom View options.
   */


L_VOID CreateZoomView(HWND hWnd, pBITMAPHANDLE pBitmap,RECT L_FAR *prcView)
{
   ZOOMVIEWPROPS ZoomViewProps;
   L_INT nRet;
   memset(&ZoomViewProps,0,sizeof(ZOOMVIEWPROPS));
   ZoomViewProps.uStructSize = sizeof(ZOOMVIEWPROPS);

   SetRect(&ZoomViewProps.rcSrc, 0, 0, 100* 100, 100* 100);
   SetRect(&ZoomViewProps.rcDst, 100* 100, 100* 100, 200* 100, 200* 100);

   ZoomViewProps.nZoom                = 200;
   ZoomViewProps.bForceDst            = FALSE;
   ZoomViewProps.bEnabled             = TRUE;

   ZoomViewProps.bCallouts            = TRUE;
   ZoomViewProps.crCallout            = RGB(255,0,0);
   ZoomViewProps.nCalloutPenStyle     = PS_DASH;

   ZoomViewProps.crZoomViewBorder     = RGB(0,255,0);
   ZoomViewProps.uZoomViewBorderStyle = ZOOMVIEWBORDERSTYLE_SIMPLE;
   ZoomViewProps.nZoomViewPenStyle    = PS_SOLID;

   ZoomViewProps.crSrcBorder          = RGB(0,0,255);
   ZoomViewProps.uSrcBorderStyle      = SOURCEBORDERSTYLE_SIMPLE;
   ZoomViewProps.nSrcPenStyle         = PS_DOT;

   CopyRect(&ZoomViewProps.rcView, prcView);
   nRet = L_CreateZoomView (hWnd, pBitmap, &ZoomViewProps);
   if(nRet = SUCCESS)
   {
      HDC hDC = GetDC(hWnd); 
      L_RenderZoomView(hDC,hWnd); 
      ReleaseDC(hWnd, hDC); 
   }
  L_RenderZoomView(hMemDC,hwnd);

}

L_VOID DestroyZoomView(HWND hWnd)
{
   L_UINT uCount,i;
   if(L_WindowHasZoomView (hWnd))
   {
      L_GetZoomViewsCount (hWnd,&uCount);

      for(i=0; i < uCount;++i)
      {
         L_DestroyZoomView (hWnd,uCount-i-1);
      }
   }
}