--- title: "LibToolBarId - Получить идентификаторы инструментальных и компактных панелей" type: guide api: [api7] tags: [guide, api7, libtoolbarid] sources: - libtoolbarid.html --- *Создание прикладных библиотек  > Оформление прикладных библиотек типа DLL  > Пример простейшей программы в среде VC++, оформленной в виде библиотеки КОМПАС  > Функции * ## LibToolBarId - Получить идентификаторы инструментальных и компактных панелей Функция не поддерживается Пример... Синтаксис: ``` extern "C" int WINAPI _export LibToolBarId (int barType, int index); Входные параметры: barType - тип запрашиваемой панели (0 - компактная панель, 1 - простая инструментальная панель, 2 - контекстная всплывающая панель), index - индекс панели. Возвращаемое значение: (для компактной и простой инструментальной панели) Идентификатор панели -1 - если для заданного barType нет панели с заданным индексом. Возвращаемое значение: (для всплывающих панелей) Идентификатор панели 0 - запрет добавления панели, -1 - отображать стандартную панель для макроэлемента, >0 - идентификатор ресурсов для загрузки пользовательской панели. ``` Примечание: 1. Панель описывается тремя ресурсами: •RCDATA состава панели; •имя панели; •значок инструментальной панели для возможности включения ее в компактную панель. 2. При описании панелей в ресурсах блок RCDATA необходимо заканчивать значением 0xffff. 3. Сначала запрашиваются обычные инструментальные панели, потом компактные панели. Система будет запрашивать функцию пока возвращаемое значение не будет равно -1. Если описанная в ресурсе инструментальная панель входит в компактную, то упоминание инструментальной панели в LibToolBarId не обязательно. 4. Отображение созданных панелей можно включить, вызвав команду Вид - Панели инструментов после подключения библиотеки. 5. Кнопки типа Fly-Out. 6. Пример описания ресурсов панелей и кнопки типа Fly-Out. 7. Индексы панелей начинаются с 0. 8. Размер, цвет, тип файла значков на кнопках… 9. Если в библиотеке нет компактной панели, то при barType = 0 нужно вернуть -1. Если в библиотеке нет инструментальной панели, то при barType = 1 нужно вернуть -1. 10. При селектировании библиотечного макроэлемента можно заменить или запретить отображение всплывающих панелей. Всплывающая панель может содержать две панели. Для получения списка контекстных панелей функция LibToolBarId вызывается первый раз при подключении библиотеки и требуется вернуть идентификаторы всех всплывающих панелей для всех библиотечных элементов. После подключения библиотеки функция вызывается при селектировании макроэлементов. В зависимости от типа макроэлемента библиотека может вернуть свои или запретить всплывающие панели. Подробнее о создании контекстных панелей... ## Пример использования функции LibToolBarId //----------------------------------------------------------------------------- // Получить идентификаторы панелей // barType == 0 - компактная панель 1 - простая панель // index - индекс панели // --- extern "C" int WINAPI __export LibToolBarId( int barType, int index ){ if ( !barType ) { // Компактная панель "Крепежные элементы" return !index ? COMPACT_BAR_CONSTR : -1; } #ifndef __LIGHT_VERSION__ else { switch( index ) { case 0: return BAR_CONSTRUCT; // Панель "Конструктивные элементы" case 1: return BAR_PROFILE; // Панель "Профили" } } #endif return -1; }