Ох, давненько тут небыл ;)
Возникла необходимость добавить на форму API'шный ToolBar. Порыскав в поисках готовых рещений, нашел пример от CyRax'a (он тут видимо тоже давненько не бывал):
http://www.vbnet.ru/samples/download.aspx?id=391
Всё фунционировало отлично, пока не захотел сделать одну dropdown кнопку со стрелочкой, отделенной от кнопки. Для этого после создания тулбара дописал такой вот код:hToolBar = CreateToolbarEx(Form.hwnd, WS_CHILD Or WS_CLIPCHILDREN Or TBSTYLE_TOOLTIPS Or CCS_NORESIZE Or CCS_NODIVIDER Or CCS_ADJUSTABLE, 300, 1, 0, 0, tbb, 0, 16, 16, 0, 0, Len(tbb))
'### added code ###
Dim lExStyle As Long
lExStyle = SendMessage(hToolBar, TB_GETEXTENDEDSTYLE, 0, 0)
Call SendMessage(hToolBar, TB_SETEXTENDEDSTYLE, 0, lExStyle Or TBSTYLE_EX_DRAWDDARROWS)
'### added code ###
ShowWindow hToolBar, SW_SHOW Ну а при создании кнопки задал стили 'TBSTYLE_DROPDOWN Or BTNS_WHOLEDROPDOWN'
Но желаемого результата не получил. Стрелочка была, но не нажималась и не "подсвечивалась" отдельно.
Тобишь о нажатии я узнавал только при TBN_DROPDOWN, вместо ожидаемогоIf a separated arrow is used, TBN_DROPDOWN is sent only if the user clicks the arrow portion of the button. If the user clicks the main part of the button, a WM_COMMAND message with button's ID is sent, just as with a standard button. У кого есть какие соображения на эту тему? Или возможно другие примеры классов для создания api тулбара.
Ответить
|