Toolbar drag&drop функция.
От: syvyi Россия  
Дата: 02.10.12 00:02
Оценка:
Привет,

по документации MSDN необходимо указать стили CCS_ADJUSTABLE и TBSTYLE_ALTDRAG для подключения функции drag&drop кнопок панели инструментов.
Не работает, что с Shift, что с Alt. Почему?
Код:
HWND create_toolbar( HWND parent )
{
DWORD stls = TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | WS_BORDER ;
DWORD cc_stls = CCS_VERT | CCS_NODIVIDER | CCS_ADJUSTABLE ;

HWND tb = CreateWindowEx( 0, TOOLBARCLASSNAME, _T(""), stls | cc_stls, 0, 0, 0, 0, parent, NULL, hInst, NULL );
SendMessage( tb, TB_SETBUTTONSIZE, 0, MAKELPARAM(48,48) );
SendMessage( tb, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0 );
HIMAGELIST iml;
iml = ImageList_Create( 48, 48, ILC_COLOR, BTNSNUM, BTNSNUM );
int i = ImageList_Add( iml, (HBITMAP)LoadImage( NULL, _T("back.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ), NULL);
ImageList_Add( iml, (HBITMAP)LoadImage( hInst, _T("forward.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ), NULL);
ImageList_Add( iml, (HBITMAP)LoadImage( hInst, _T("back_in_time.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ), NULL);
ImageList_Add( iml, (HBITMAP)LoadImage( hInst, _T("cancel.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ), NULL);
SendMessage( tb, TB_SETIMAGELIST, (WPARAM)0, (LPARAM)iml );
TBBUTTON btns [BTNSNUM] = {
{ 0, idm_back, TBSTATE_ENABLED | TBSTATE_WRAP, BTNS_DROPDOWN | BTNS_AUTOSIZE, {0}, NULL, 0 },
{ 1, idm_forward, TBSTATE_ENABLED | TBSTATE_WRAP, BTNS_BUTTON | BTNS_AUTOSIZE , {0}, NULL, 0 },
{ 2, idm_back_in_time, TBSTATE_ENABLED | TBSTATE_WRAP, BTNS_BUTTON | BTNS_AUTOSIZE, {0}, NULL, 0 },
{ 3, idm_cancel, TBSTATE_ENABLED | TBSTATE_WRAP, BTNS_BUTTON | BTNS_AUTOSIZE , {0}, NULL, 0 }
};
SendMessage( tb, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS );
if ( SendMessage( tb, TB_ADDBUTTONS, (WPARAM)BTNSNUM, (LPARAM)btns ) == FALSE )
return NULL;
return tb;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.