Достучаться до кнопок ToolBar по хэндлу
От: Дмитрий Баранов  
Дата: 09.12.02 12:59
Оценка:
Здравствуйте,

Итак (пишу по памяти, заранее простите).


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 никак.
Re: Достучаться до кнопок ToolBar по хэндлу
От: SCS  
Дата: 10.12.02 14:25
Оценка:
Здравствуйте, Дмитрий Баранов, Вы писали:
ДБ>Как жить? Задача на самом деле примитивная — соорудить нечто вроде главного плавающего меню в CoolBar ala IE или Office, но вот что-то уж больно убогий интерфейс к этому ActiveX-контролу, без API никак.

класс toolbar'а из common controls — ToolbarWindow32
класс toolbar'а, который используется в VB — msvb_lib_toolbar
SCS
Re[2]: Достучаться до кнопок ToolBar по хэндлу
От: Дмитрий Баранов  
Дата: 10.12.02 14:29
Оценка:
SCS>класс toolbar'а из common controls — ToolbarWindow32
SCS>класс toolbar'а, который используется в VB — msvb_lib_toolbar

... а класс в Delphi — TToolBar — но это ж только обертка
Его сучность ведь та же
Re[3]: Достучаться до кнопок ToolBar по хэндлу
От: SCS  
Дата: 10.12.02 14:34
Оценка:
Здравствуйте, Дмитрий Баранов, Вы писали:
ДБ>... а класс в Delphi — TToolBar — но это ж только обертка
ДБ>Его сучность ведь та же
в VB обертка Toolbar20WndClass
SCS
Re[4]: Достучаться до кнопок ToolBar по хэндлу
От: Дмитрий Баранов  
Дата: 10.12.02 14:44
Оценка:
Здравствуйте, SCS, Вы писали:

SCS>Здравствуйте, Дмитрий Баранов, Вы писали:

ДБ>>... а класс в Delphi — TToolBar — но это ж только обертка
ДБ>>Его сучность ведь та же
SCS>в VB обертка Toolbar20WndClass

Какая разница, как он называется?
RegisterClassEx и хоть горшком его назовите.
Re[5]: Достучаться до кнопок ToolBar по хэндлу
От: SCS  
Дата: 10.12.02 14:48
Оценка:
Здравствуйте, Дмитрий Баранов, Вы писали:

ДБ>Какая разница, как он называется?

ДБ>RegisterClassEx и хоть горшком его назовите.

вот в RegisterClassEx и прописана процедура обработки сообщений (для класса msvb_lib_toolbar), которая не понимает TB_XXX сообщений. Разве не так ? причем это не единственный пример, когда VB использует собственные классы, очень похожие на что-то знакомое
SCS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.