LToolbar::AddButton
#include "ltwrappr.h"
L_INT LToolbar::AddButton(uButtonRefId, pButtonInfo, dwFlags )
L_UINT uButtonRefId; |
/* button ID */ |
const pLBUTTONINFO pButtonInfo; |
/* pointer to a structure */ |
L_UINT32 dwFlags; |
/* flags */ |
Adds a new button to the toolbar.
Parameter |
Description |
|
uButtonRefId |
Reference to use for positioning the new button inside the toolbar. |
|
pButtonInfo |
Point to an LBUTTONINFO structure containing data for the new button. |
|
dwFlags |
Flag that indicates where to add the new button, with respect to the button specified in uButtonRefId. Possible values are: |
|
|
Flag |
Meaning |
|
TOOLBAR_ADD_BEFORE |
Add this button before the button specified by uButtonRefId in the toolbar. |
|
TOOLBAR_ADD_AFTER |
Add this button after the button specified by uButtonRefId in the toolbar. |
|
TOOLBAR_ADD_TOOL |
If this flag is specified, the toolkit will create a new tool and make this button the first button of the new tool. |
|
If this flag is not specified, the toolkit will add the new button to the same tool as uButtonRefId. |
|
|
Note, if the toolbar contains no buttons, both uButtonRefId and dwFlags will be ignored and the new tool and button will be added to the toolbar. |
Comments
As an example, if dwFlags is set to TOOLBAR_ADD_BEFORE | TOOLBAR_ADD_TOOL, then a new tool will be added before the button specified by uButtonRefId. If dwFlags is set to TOOLBAR_ADD_BEFORE, then the new button will be added before the button specified by uButtonRefId and it will become part of the same tool as the button specified by uButtonRefId.
Returns
SUCCESS |
The function was successful. |
< 1 |
An error occurred. Refer to Return Codes. |
Required DLLs and Libraries
LTTLB
For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.
See Also
Functions: |
LToolbar::RemoveButton, LToolbar::GetButtonInfo, LToolbar::SetButtonInfo, LToolbar::GetToolbarInfo, LToolbar::SetToolbarInfo, Class Members |
Topics: |
Example
/* This example will create an empty toolbar and then add four buttons*/
LToolbar tlb;
L_VOID ToolbarTest ( HWND hWnd )
{
/*Assume that m_hWnd is a valid window handle*/
/*Assume the following global declaration: */
LToolbar tlb;
/* Initiate the toolbar handle */
tlb.Initialize ();
/* Check the validity of the handle */
if ( tlb.IsValid () )
{
POINT pt = { 0, 0 } ;
/* Initiate the point will be used to align the toolbar at the top-left of its owner client area */
::ClientToScreen ( hWnd, &pt ) ;
/* Create the toolbar */
tlb.Create (hWnd, TEXT("Tools Window"), TOOLBAR_EMPTY ) ;
/* assume these resource IDs contain valid bitmaps */
const L_INT nResId[ 4 ] = { IDB_BITMAP1, IDB_BITMAP2, IDB_BITMAP3, IDB_BITMAP4 };
const L_TCHAR *szToolTipText[ 4 ] = { TEXT("Button 1"), TEXT("Button 2"), TEXT("Button 3"), TEXT("Button 4") };
LBUTTONINFO ButtonInfo;
L_INT i;
L_UINT uRefId;
L_UINT32 dwFlags;
uRefId = 0; /* we dont need a reference button when adding the first one */
for( i = 0; i < 4; i++ )
{
ButtonInfo.uID = i + 1;
ButtonInfo.hBitmap = LoadBitmap(
(HINSTANCE) GetWindowLong( hWnd /*hWndParent*/, GWL_HINSTANCE ),
MAKEINTRESOURCE( nResId[ i ] )
);
lstrcpy( ButtonInfo.szToolTipText, szToolTipText[ i ] );
ButtonInfo.dwTag = 0L;
ButtonInfo.fsState = TBSTATE_ENABLED;
dwFlags = TOOLBAR_ADD_AFTER;
if( i == 0 || i == 2 )
dwFlags |= TOOLBAR_ADD_TOOL;
tlb.AddButton (uRefId, &ButtonInfo, dwFlags );
DeleteObject( ButtonInfo.hBitmap ); /* the toolbar toolkit keeps its own copy */
uRefId = ButtonInfo.uID; /* save last button ID */
}
/* Set the toolbar position */
tlb.SetPosition (&pt, TOOLBAR_POSITION_TOP | TOOLBAR_POSITION_LEFT ) ;
/* Show the toolbar */
tlb.SetVisible (TRUE ) ;
}
}