#include "ltwrappr.h"

virtual L_INT LAnnButton::AddUserHandle(pAnnHandle)

pANNHANDLE pAnnHandle;

pointer to a structure that defines the user handle

Adds a user-defined handle to an annotation object, where pAnnHandle is a pointer to the structure defining an annotation handle.




Pointer to a structure that defines the user handle.



The function was successful.

< 1

An error occurred. Refer to Return Codes.


Before calling this function, you must create the LAnnButton object.

Call this function one or more times to add user handles to an existing annotation object.

The user handle location can be defined using container coordinates or client coordinates.

Client coordinates factor in the current zoom factor, and the horizontal and vertical scrolling.

For more information on defining a user handle, see the documentation for the ANNHANDLE structure.

Required DLLs and Libraries


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


Win32, x64.

See Also


Class Members


Annotation Functions: Object Properties


Implementing Annotations


Automated User Interface for Annotations


Annotation Functions: Creating and Deleting Annotations


Types of Annotations


Annotation Functions: Implementing Custom Annotations


Annotation Functions: Creating Custom Annotations


Fixed Annotations


Minimizing Flicker With Double Buffering


Annotation Functions: Working with the Toolbar


// This example adds user handles to the center of the top and bottom of a Button object

L_INT LAnnButton_AddUserHandleExample(LAnnButton *pLButton)  
   L_INT nRet; 
   ANNHANDLE AnnHandle;  
   L_UINT uType;  
   ANNRECT arc;  
   uType = pLButton->GetType(); 
   if (uType == ANNOBJECT_BUTTON)  
      nRet = pLButton->GetRect (&arc, NULL);  
      if(nRet != SUCCESS) 
         return nRet; 
      memset(&AnnHandle, 0, sizeof(ANNHANDLE));  
      AnnHandle.uStructSize = sizeof(ANNHANDLE);  
      AnnHandle.nID = 100;  
      AnnHandle.bVisible = TRUE;  
      AnnHandle.crPen = RGB(0,0,0);  
      AnnHandle.crFill = RGB(255,0,0);  
      AnnHandle.nShape = ANNHANDLE_SHAPE_CIRCLE;  
      AnnHandle.hCursor = NULL;  
      AnnHandle.uFlags = ANNHANDLE_ID | ANNHANDLE_LOCATION |  
                         | ANNHANDLE_FILL_COLOR | ANNHANDLE_SHAPE;  
      AnnHandle.aptContainer.x  = (arc.left + arc.right)/2;  
      AnnHandle.aptContainer.y =;  
      nRet = pLButton->AddUserHandle(&AnnHandle);  
      if(nRet != SUCCESS) 
         return nRet; 
      AnnHandle.aptContainer.x = (arc.left + arc.right)/2;  
      AnnHandle.aptContainer.y = arc.bottom;  
      nRet = pLButton->AddUserHandle(&AnnHandle);  
      if(nRet != SUCCESS) 
         return nRet; 
      MessageBox(NULL, TEXT("Annotation object must be a Button."), TEXT("Error"), MB_OK); 
      return FAILURE; 
   return SUCCESS; 

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

LEADTOOLS Raster Imaging C++ Class Library Help