L_UpdateMagGlassRect

Summary

Updates the Magnify Glass procedure with a new destination rectangle.

Syntax

#include "l_bitmap.h"

L_LTDIS_API L_INT L_UpdateMagGlassRect(hWnd, prcDst)

Parameters

L_HWND hWnd

Handle of the window to which the Magnifying Glass is attached.

L_RECT * prcDst

Pointer to the Windows RECT structure that determines how image is positioned in the device context. The coordinates in the RECT structure are relative to the device context. There is no default for this parameter. You must specify the RECT structure.

Returns

Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.

Comments

This function should be called anytime the image's destination rectangle has been updated in an application. For example, if the image is scrolled or zoomed, call this function with the new destination rectangle.

Required DLLs and Libraries

Platforms

Win32, x64.

See Also

Functions

Topics

Example

This sample comes from the Main API Demo "CHILD.C".
This is not a complete sample.
Refer to CHILD.C for the complete code.

L_INT UpdateMagGlassRectExample(L_HWND hWnd, L_HWND hWndCtl, L_UINT nCode, L_INT nPos) 
{ 
   L_INT       nRet; 
   LPCHILDDATA pData = (LPCHILDDATA)GlobalAllocPtr(GHND, sizeof(CHILDDATA)); 
   L_INT       nScrollInc; 
   L_BOOL      fInScroll; 
 
   UNREFERENCED_PARAMETER(hWndCtl); 
   SETWNDDATA(hWnd, pData); 
   fInScroll = TRUE; 
   switch (nCode) 
   { 
   case SB_LEFT: 
      nScrollInc = -pData->nHScrollPos; 
      break; 
   case SB_RIGHT: 
      nScrollInc = pData->nHScrollMax - pData->nHScrollPos; 
      break; 
   case SB_LINELEFT: 
      nScrollInc = -pData->nHScrollStep; 
      break; 
   case SB_LINERIGHT: 
      nScrollInc = pData->nHScrollStep; 
      break; 
   case SB_PAGELEFT: 
      nScrollInc = -max(pData->nHScrollStep, (pData->cxClient - 
         pData->nHScrollStep)); 
      break; 
   case SB_PAGERIGHT: 
      nScrollInc = max(pData->nHScrollStep, (pData->cxClient - 
         pData->nHScrollStep)); 
      break; 
   case SB_THUMBTRACK: 
   case SB_THUMBPOSITION: 
      nScrollInc = (nPos << pData->nHScrollFactor) - pData->nHScrollPos; 
      break; 
   default: 
      nScrollInc = 0; 
      break; 
   } 
 
   nScrollInc = max(-pData->nHScrollPos, 
      min(nScrollInc, (pData->nHScrollMax - 
         pData->nHScrollPos))); 
 
   if (nScrollInc) 
   { 
      pData->nHScrollPos += nScrollInc; 
      OffsetRect(&pData->rcView, -nScrollInc, 0); 
      ScrollWindow(hWnd, -nScrollInc, 0, NULL, NULL); 
      SetScrollPos(hWnd, SB_HORZ, pData->nHScrollPos >> 
         pData->nHScrollFactor, TRUE); 
      UpdateWindow(hWnd); 
   } 
 
   if (pData->bMagGlass) 
   { 
      nRet = L_UpdateMagGlassRect(pData->hBitmapWnd, &pData->rcView); 
      if (nRet != SUCCESS) 
         return nRet; 
   } 
 
   UNLOCKCHILDDATA(GetParent(hWnd)); 
   fInScroll = FALSE; 
   return SUCCESS; 
} 

Help Version 22.0.2023.7.11
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C API Help
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.