Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещаемый ToolBar, вопрос 
:(
    Опции темы
Flay
Дата 20.12.2006, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Как сделать перемещаемый тулбар? Я использую TOOLBARCLASSNAME класс, но не могу найти подходящих параметров. В принципе мне нужен просто toolbar со стилем Vista. При создании обычного получается не так красиво, как перемещаемые тулбары (н-р в ворде)
PM MAIL   Вверх
Flay
Дата 21.12.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Всё... сам разобрался. Это оказался ReBar а не ToolBar
PM MAIL   Вверх
Flay
Дата 21.12.2006, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Пожалуйста, помогите найти нормальные статьи по созданию ToolBar'a с разными прибамбасами типа edit control'a. Буду очень благодарен
PM MAIL   Вверх
Aleksandor
Дата 21.12.2006, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



Можно поискать в MSDN по фразе
Creating an Internet Explorer-style Toolbar


--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
Flay
Дата 22.12.2006, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Цитата(Aleksandor @ 21.12.2006,  22:29)
Можно поискать в MSDN по фразе
Creating an Internet Explorer-style Toolbar

Спасибо.

А как на кнопке текст написать? Я заполняю структуру TBBUTTON:
Код

    TBButtons[1].iBitmap    = -1;
    TBButtons[1].idCommand    = IB_SETNICK;
    TBButtons[1].fsState    = TBSTATE_ENABLED;
    TBButtons[1].fsStyle    = BTNS_BUTTON ;
    TBButtons[1].dwData    = 0;
    TBButtons[1].iString        = 0;

Потом создаю сам тулбар:
Код

    hToolbar = CreateToolbarEx( hWnd,
                0x50000840|TBSTYLE_AUTOSIZE ,
                201,
                TOTALBUTTONS,
                hInst,
                IDTB_BITMAP,
                TBButtons,
                TOTALBUTTONS,
                0, 0, 16, 16,
                sizeof (TBBUTTON));

Как теперь на этой кнопке текст вывести? В MSDN прочитал: iString - Zero-based index of the button string, or a pointer to a string buffer that contains text for the button. 

Попробовал записать это в структуру:
Код

    TBButtons[1].iString        = (INT_PTR)"text";

Снизу кнопки появились какие-то черные пиксели, а также изменили размер остальные кнопки smile

Ради эксперимента попробовал узнать хэндл кнопки (hB = GetDlgItem(hToolbar, IB_SETNICK)), естественно ничего не получилось smile Уже даже и не знаю что делать
PM MAIL   Вверх
Aleksandor
  Дата 22.12.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

Репутация: 10
Всего: 12



Вот, тоже из MSDN  smile 
Toolbars have a curious way of doing this. You don't just set the text as an LPCTSTR. Instead, you create a string with all the text labels, zero-terminated with a double-zero at the end:

LPCTSTR myStrings = 
_T("&File\0&Edit\0&View\0");
     Then you call AddStrings with this string, and for each button you specify the index of the text you want in TBBUTTON::iString. 

PS код не тестил, но в примере почему то не double-zero в конце 
Может все-таки LPCTSTR myStrings = _T("&File\0&Edit\0&View\0\0");


Это сообщение отредактировал(а) Aleksandor - 23.12.2006, 11:48


--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
Flay
Дата 25.12.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Скачав один пример из MSDN узнал как вывести текст на кнопке:
Код

    TBButtons[0].iBitmap    = 0;
    TBButtons[0].idCommand    = IB_SETNICK;
    TBButtons[0].fsState    = TBSTATE_ENABLED  ;
    TBButtons[0].fsStyle    = TBSTYLE_BUTTON ;
    TBButtons[0].dwData    = 0;
    TBButtons[0].iString        = iStatus[0];

    TBButtons[1].iBitmap    = -1;
    TBButtons[1].idCommand    = 3;
    TBButtons[1].fsState    = TBSTATE_ENABLED;
    TBButtons[1].fsStyle    = BTNS_WHOLEDROPDOWN|BTNS_SHOWTEXT ;
    TBButtons[1].dwData    = 0;
    TBButtons[1].iString        = iStatus[1];

    hToolbar = CreateToolbarEx( hWnd,
    WS_CHILD |  WS_VISIBLE |TBSTYLE_AUTOSIZE|TBSTYLE_FLAT|CCS_ADJUSTABLE|TBSTYLE_TOOLTIPS,
    201,
    2,
    hInst,
    IDTB_BITMAP,
    TBButtons,
    2,
    0, 0, 16, 16,
    sizeof (TBBUTTON));

    iStatus[0] = SendMessage(hToolbar, TB_ADDSTRING, 0, (LPARAM)"text1");
    iStatus[1] = SendMessage(hToolbar, TB_ADDSTRING, 0, (LPARAM)"text2");

Осталось только разобраться почему при таком способе текст выводится в нижней части кнопки а не по середине smile

Ещё по ходу разработки своей программы у меня возникла такая проблемма: как вывести иконку на кнопку с 24 бит. У меня выводятся только 16 цветные, если выводить 24 битные, то появляются просто черные квадраты
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.