Здравствуйте,
Итак (пишу по памяти, заранее простите).
Public Const WM_USER = &H400
Public const TB_DELETEBUTTON = WM_USER + 22
Public Const SW_HIDE = 0
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Дальше, в коде
' используется ToolBar из CommonControls 6.0
Call ShowWindow(ToolBar1.HWND, SW_HIDE)
'это работает на ура, хэндл есть, все отлично
Dim res as long
res = Sendmessage(ToolBar1.HWND, TB_DELETEBUTTON, 0, 0)
А вот это уже не работает, равно как и все прочие попытки (TB_GETBUTTON и т.п.) достучаться к КНОПКАМ тулбара через ВИнАпи — возвращают неудачу.
Как жить?

Задача на самом деле примитивная — соорудить нечто вроде главного плавающего меню в CoolBar ala IE или Office, но вот что-то уж больно убогий интерфейс к этому ActiveX-контролу, без API никак.
Здравствуйте, Дмитрий Баранов, Вы писали:
ДБ>Как жить?
Задача на самом деле примитивная — соорудить нечто вроде главного плавающего меню в CoolBar ala IE или Office, но вот что-то уж больно убогий интерфейс к этому ActiveX-контролу, без API никак.
класс toolbar'а из common controls — ToolbarWindow32
класс toolbar'а, который используется в VB — msvb_lib_toolbar
SCS>класс toolbar'а из common controls — ToolbarWindow32
SCS>класс toolbar'а, который используется в VB — msvb_lib_toolbar
... а класс в Delphi — TToolBar — но это ж только обертка
Его сучность ведь та же
Здравствуйте, Дмитрий Баранов, Вы писали:
ДБ>... а класс в Delphi — TToolBar — но это ж только обертка
ДБ>Его сучность ведь та же
в VB обертка Toolbar20WndClass
Здравствуйте, SCS, Вы писали:
SCS>Здравствуйте, Дмитрий Баранов, Вы писали:
ДБ>>... а класс в Delphi — TToolBar — но это ж только обертка
ДБ>>Его сучность ведь та же
SCS>в VB обертка Toolbar20WndClass
Какая разница, как он называется?
RegisterClassEx и хоть горшком его назовите.
Здравствуйте, Дмитрий Баранов, Вы писали:
ДБ>Какая разница, как он называется?
ДБ>RegisterClassEx и хоть горшком его назовите.
вот в RegisterClassEx и прописана процедура обработки сообщений (для класса msvb_lib_toolbar), которая не понимает TB_XXX сообщений. Разве не так ? причем это не единственный пример, когда VB использует собственные классы, очень похожие на что-то знакомое