LAnnToolBar::FreeToolBarButtons

#include "ltwrappr.h"

virtual L_INT LAnnToolBar::FreeToolBarButtons(pButtons, uButtons)

pANNBUTTON pButtons;

array of buttons to include in the toolbar

L_UINT uButtons;

number of buttons in the toolbar

Frees the memory allocated by LAnnToolBar::GetToolBarButtons for the pButtons array.

Parameter

Description

pButtons

An array of ANNBUTTON structures that contain information about the buttons in the annotation toolbar.

uButtons

Number of buttons in the toolbar. (Number of entries in the pButtons array.)

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Required DLLs and Libraries

LTANN

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

Win32, x64.

See Also

Functions:

LAnnotation::GetOptions, LAnnotation::SetOptions, LAnnToolBar::Create, LAnnToolBar::GetToolChecked, LAnnToolBar::SetToolChecked, LAnnToolBar::IsButtonVisible, LAnnToolBar::SetButtonVisible, LAnnToolBar::GetToolBarButtons, LAnnToolBar::SetToolBarButtons, LAnnToolBar::GetToolBarInfo, LAnnToolBar::SetToolBarColumns, LAnnToolBar::SetToolBarRows

Topics:

Annotation Functions: Working with the Toolbar

 

Implementing Annotations

 

Key Annotation Features

Example

L_INT LAnnToolBar_FreeToolBarButtonsExample(LAnnToolBar annToolBar) 
{ 
   L_UINT uButtons; 
   pANNBUTTON pButtons; 
   L_INT nRet; 
   HGLOBAL hGlobal; 
   LBitmap myBitmap; 
 
   //Assume declaration: LAnnToolBar m_annToolBar 
 
   myBitmap.Load(MAKE_IMAGE_PATH(TEXT("ImageProcessingDemo\\FadeMask.bmp"))); 
   myBitmap.Size(TOOLBARIMAGECX, TOOLBARIMAGECY); 
 
   // get the number of buttons in the toolbar  
   nRet = annToolBar.GetToolBarButtons(NULL,sizeof(ANNBUTTON), &uButtons); 
   if (nRet == SUCCESS) 
   { 
      // allocate an array big enough to  hold the number of existing buttons + 1  
      hGlobal = ::GlobalAlloc(GMEM_MOVEABLE, (uButtons+1)*sizeof(ANNBUTTON)); 
      pButtons = (pANNBUTTON)::GlobalLock(hGlobal); 
      if (pButtons) 
      { 
         // get the  existing buttons  
         nRet = annToolBar.GetToolBarButtons(pButtons,sizeof(ANNBUTTON),  &uButtons); 
         if (nRet ==  SUCCESS) 
         { 
            // add a new user defined tool button  
            pButtons[uButtons].uFlags = 0; 
            pButtons[uButtons].uTool = ANNTOOL_USER; 
            pButtons[uButtons].uBitmapStructSize=sizeof(BITMAPHANDLE); 
            pButtons[uButtons].pBitmapUp = myBitmap.GetHandle(); 
            pButtons[uButtons].pBitmapDown = pButtons[uButtons].pBitmapUp; 
            pButtons[uButtons].nToolTipTextID = -1; 
            pButtons[uButtons].pToolTipText = TEXT("Tool Tip"); 
            annToolBar.SetToolBarButtons(pButtons, uButtons+1); 
            // free uButtons  
            annToolBar.FreeToolBarButtons(pButtons, uButtons); 
 
            ::GlobalUnlock(pButtons); 
            ::GlobalFree(hGlobal); 
            //Change  the number of rows and columns  
            ANNTOOLBARINFO annToolBarInfo; 
            annToolBar.GetToolBarInfo(&annToolBarInfo, sizeof(annToolBarInfo)); 
            if(annToolBarInfo.uRows > 1) 
            { 
               annToolBar.SetToolBarColumns(annToolBarInfo.uColumns + 1); 
               //  or do the line below 
               //m_annToolBar.SetToolBarRows(annToolBarInfo.uRows -1); 
            } 
         } 
         else 
            AfxMessageBox(TEXT("Error getting toolbar buttons.")); 
      } 
      else 
         AfxMessageBox(TEXT("Not  enough memory to allocate pButtons.")); 
   } 
   else 
      AfxMessageBox(TEXT("Error getting  uButtons.")); 
 
   return SUCCESS; 
} 
Help Version 20.0.2020.4.5
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C++ Class Library Help