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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Иконка на вкладке TabCtrl 
V
    Опции темы
Alca
Дата 4.2.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Иконка на вкладке TabCtrl. Как замутить? (VC++ 2008, чистый WinAPI)

Это сообщение отредактировал(а) Alca - 4.2.2009, 15:00


--------------------
PM WWW ICQ Skype Jabber   Вверх
Rrader
  Дата 4.2.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

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



У SysTabControl32 есть стиль TCS_OWNERDRAWFIXED. Там можно рисовать на табах, например, через Theme API


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Alca
Дата 4.2.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Не то. Мне надо создать ImageList и запихнуть из него в tci.iImage (индекс иконки).
Код

    TCITEM tci;        
    tci.pszText    = lpCaption;
    tci.cchTextMax = 20;
    tci.mask       = TCIF_TEXT | TCIF_IMAGE;
    tci.iImage     = iImage;

Вот такой у мну код:
Код

HIMAGELIST m_hImageList = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 4, 4);
HICON hIcon = NULL;
//hIcon = (HICON)::LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_icoApplication));
hIcon = (HICON)::LoadImage(g_hInstance, MAKEINTRESOURCE(IDI_icoApplication), IMAGE_ICON, 16, 16, LR_SHARED);
if (NULL == hIcon) {
    MessageBox(0, "NULL == hIcon", "", MB_OK);
}
ImageList_AddIcon(hIcon);

Код

//вставляем закладку
TCITEM tci;        
tci.pszText    = "lpCaption";
tci.cchTextMax = 20;
tci.mask       = TCIF_TEXT | TCIF_IMAGE;
tci.iImage     = 0/*iImage*/;
::SendMessage(_m_hWnd, TCM_INSERTITEM, iPos, (LPARAM)&tci);


Это сообщение отредактировал(а) Alca - 4.2.2009, 15:20


--------------------
PM WWW ICQ Skype Jabber   Вверх
Dem_max
Дата 4.2.2009, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

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



Код

   HICON hIcon;
   hImgList = ImageList_Create(16,16,ILC_COLOR32|ILC_MASK,4,0);
   hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ICON_1));
   ImageList_AddIcon(hImgList,hIcon);
   hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ICON_2));
   ImageList_AddIcon(hImgList,hIcon);
   hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ICON_3));
   ImageList_AddIcon(hImgList,hIcon);
   hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ICON_4));
   ImageList_AddIcon(hImgList,hIcon);
   hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ICON_5));
   ImageList_AddIcon(hImgList,hIcon);
   himlMain.add(hImgList);

   TCITEM tcItem;
   FillZeroMemory(&tcItem, sizeof(tcItem));
   TabCtrl_SetImageList(hWndTabControl, hImgList);
   tcItem.mask =  TCIF_IMAGE | TCIF_TEXT;
   tcItem.cchTextMax = 200;

   for(int i = 0; i < 5; i++)
   {
      tcItem.pszText = Txt;
      tcItem.iImage = i;
      TabCtrl_InsertItem(hWndTabControl, i, &tcItem);
   }



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Alca
Дата 4.2.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Dem_max, есть у тебя работающий пример?


--------------------
PM WWW ICQ Skype Jabber   Вверх
Rrader
  Дата 4.2.2009, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

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



Alca, так все работает, просто добавь к своему коду
Код

TabCtrl_SetImageList(_m_hWnd, m_hImageList);



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Dem_max
Дата 4.2.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

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





--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Alca
Дата 4.2.2009, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Есть у меня такое:
Код

::SendMessage(_m_hWnd, TCM_SETIMAGELIST, NULL, m_hImageList);


Добавлено через 6 минут и 43 секунды
Цитата

держи Работающий пример

Там же нет исходников  smile 


--------------------
PM WWW ICQ Skype Jabber   Вверх
Alca
Дата 5.2.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Спасибо, разобрался. +1


--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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