Click to See Complete Forum and Search --> : add listbox to toolbar


supernater
May 28th, 2009, 06:51 AM
Hi there. I've created a toolbar using the method shown below...

HWND CreateSimpleToolbar(HWND hWndParent)
{
// Define some constants.
const int ImageListID = 0;
const int numButtons = 3;
const DWORD buttonStyles = BTNS_AUTOSIZE;
const int bitmapSize = 16;

// Create the toolbar.
HWND hWndToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | TBSTYLE_WRAPABLE,
0, 0, 0, 0,
hWndParent, NULL, g_hInst, NULL);
if (hWndToolbar == NULL)
{
return NULL;
}

// Create the imagelist.
HIMAGELIST hImageList = ImageList_Create(
bitmapSize, bitmapSize, // Dimensions of individual bitmaps.
ILC_COLOR16 | ILC_MASK, // Ensures transparent background.
numButtons, 0);

// Set the image list.
SendMessage(hWndToolbar, TB_SETIMAGELIST, (WPARAM)ImageListID,
(LPARAM)hImageList);

// Load the button images.
SendMessage(hWndToolbar, TB_LOADIMAGES, (WPARAM)IDB_STD_SMALL_COLOR,
(LPARAM)HINST_COMMCTRL);

// Initialize button info.
TBBUTTON tbButtons[numButtons] =
{
{ MAKELONG(STD_CUT, ImageListID), IDM_CUT, TBSTATE_ENABLED,
buttonStyles, {0}, 0, (INT_PTR)L"New" },
{ MAKELONG(STD_COPY, ImageListID), IDM_COPY, TBSTATE_ENABLED,
buttonStyles, {0}, 0, (INT_PTR)L"Open"},
{ MAKELONG(STD_PASTE, ImageListID), IDM_PASTE, 0,
buttonStyles, {0}, 0, (INT_PTR)L"Save"}
};

// Add buttons.
SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE,
(WPARAM)sizeof(TBBUTTON), 0);
SendMessage(hWndToolbar, TB_ADDBUTTONS, (WPARAM)numButtons,
(LPARAM)&tbButtons);

// Tell the toolbar to resize itself, and show it.
SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
ShowWindow(hWndToolbar, TRUE);
return hWndToolbar;
}

I would like to add a listbox to the toolbar but I would like to place it between the 2nd and third button (the copy and paste button). How do I do this?

Is there anyway to insert a listbox into the TBBUTTON? Or do I have to make two TBBUTTONs? In other words, should I make one TBBUTTON containing the first two buttons (cut and copy), position it. Make the Listbox, position it. Then make a second TBBUTTON containing the third button (paste button) and position it on the other side of the listbox.

carl666
June 2nd, 2009, 07:40 AM
There are several known methods (see Win32 group (http://tinyurl.com/cmhb5g)) for code (C)

srelu
June 2nd, 2009, 08:52 PM
A toolbar can only hold buttons. Use a dialog bar.