Здравствуйте Obsolete, Вы писали:
O>Положил на форму в MS Visual C++ 6.0 ActiveX компонент Microsoft Toolbar Control ver.6 и никак не могу отловить сообщение от конкретной нажатой кнопки на панели. Какое событие использовать и какой метод для этого использовать. Как вообще это сделать?
В редакторе ресурсов жмёшь на тулбаре: Правый мышь->Events->Дважды ButtonClick->задаёшь имя функции обработчика. В обработчик передаётся LPDISPATCH — это интерфейс MSComctlLib::IButton. Преобразуешь этот диспатч к этому интерфейсу и определяешь нажатую кнопку по её имени:
void CFormTemp::OnButtonClickToolbar (LPDISPATCH Button)
{
try {
MSComctlLib::IButtonPtr btn(Button);
if (btn->Key == _bstr_t(L"FirstBtn")) {
// ...
} else if (btn->Key == _bstr_t(L"NextBtn")) {
// ...
} else ...
} catch (_com_error& e) {
...
}
}
O>И еще. Как подключить к этому компоненту ImageList Control ???
Ложишь его на туже форму, в OnInitialUpdate пишешь:
try {
m_tbr->ImageList = m_img;
m_tbr->Buttons->Item[&_variant_t(1)]->Image = L"First";
m_tbr->Buttons->Item[&_variant_t(2)]->Image = L"Next";
} catch (_com_error& er) {
// ...
}
Здесь я привожу примеры не для стандартных оберток, генерируемых MFC, а обёрток директивы #import, полученных способом, описанным в
http://www.rsdn.ru/?article/?vcpp/import.xmlАвтор(ы): Игорь Ткачёв
Дата: 9.03.2001
В данной статье приводится объяснение работы директивы #import
компилятора Visual C++ и даны примеры её использования с
MS Word, MS Excel, ADO DB и ActiveX Control.
.