Re: Помогите разобраться с Microsoft Toolbar Control !
От: IT Россия linq2db.com
Дата: 08.10.01 00:29
Оценка:
Здравствуйте 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.
.
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.