Kultura
Помогающий
Offline
|
|
« : 21-03-2009 14:01 » |
|
Изучаю эллементы управления общего пользования.
Вопрос: как менять цвет текста в статус баре (в разных частях, но сразу во всех тоже пойдет)?
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #1 : 21-03-2009 16:44 » |
|
Когда задаеш подобные вопросы, то нужно обязательно указывать, какую именно библиотеку ты изучаеш. Варианты для студии могут быть разные. MFC, WinForm или пишеш в чистом WinAPI. Или вообше стороняя библиотека.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Kultura
Помогающий
Offline
|
|
« Ответ #2 : 23-03-2009 16:54 » |
|
чистый WinAPI
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #3 : 23-03-2009 20:10 » |
|
статус бар - это где ? Внизу окна ?
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #4 : 23-03-2009 20:39 » |
|
Леш, а ты статусбар обзываеш как-то по другому? Сколько я видел библиотек, везде вроде самая нижняя полоска окна, в которой как правило выводится инфа, называется статусбар.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 23-03-2009 21:27 » |
|
я им просто не пользовался никогда, а ещё удалял, когда визард делал его принудительно во фрейме Мне обычно он мешался
|
|
|
Записан
|
|
|
|
|
Kultura
Помогающий
Offline
|
|
« Ответ #7 : 27-03-2009 10:08 » |
|
Finch, прочитал, мне бы еще пример. Сам, насколько понял, делаю так: посылаю, после разбития статуса на части SendMessage (hStatus, SB_SETTEXT, (WPARAM) (partNum | SBT_OWNERDRAW), 0); А в WM_DRAWITEM изменяю цвет: SetTextColor (pdis->hDC, YELLOW); В таком виде не работает, как правильно?
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #8 : 27-03-2009 12:15 » |
|
Ты должен сам отрисовать элемент, а не просто изменить цвет текста. Тебе дается контекст устройства, вот и рисуй на нем текст с помошью TextOut.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Kultura
Помогающий
Offline
|
|
« Ответ #9 : 30-03-2009 07:47 » |
|
Не разобрался я, OWNERDRAW должен быть сам статус бар или каждая его часть. И как узнать, какой текст выводить в TextOut. А главный вопрос: каким образом обрабатывать WM_MENUSELECT - свой MenuHelp делать?
Очень помог бы краткий пример по этим вопросам. В мсдн-е очень сжато написано
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #10 : 30-03-2009 12:00 » |
|
И как узнать, какой текст выводить в TextOut.
COLORREF GetTextColor( HDC hdc // handle to DC );
BOOL GetTextMetrics( HDC hdc, // handle to DC LPTEXTMETRIC lptm // text metrics );
А вообще используй MSDN, там все это есть.
|
|
« Последнее редактирование: 30-03-2009 12:02 от Serg79 »
|
Записан
|
|
|
|
Kultura
Помогающий
Offline
|
|
« Ответ #11 : 01-04-2009 09:22 » |
|
Serg79, вопрос немного не в том. Я вот за что: когда надо обновить текст в обычном статус баре, посылаем SB_SETTEXT СБ получает сообщение и отрисовывает этот текст. Если СБ OWNERDRAW, окно отрисовывает текст. Вопрос был, как узнать, что за текст надо отрисовать. Хотя с этим, вроде уже понятно: отправлять в WM_DRAWITEM статус бару SB_GETTEXT и его рисовать.
А вот с WM_MENUSELECT и MenuHelp (см. пред. пост) все еще не понятно.
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #12 : 01-04-2009 09:25 » |
|
Статус Бар, это тоже самое окно и оно имеет свои установки, получай контекст окна Статус Бара и из него узнавай каким цветом и каким шрифтом на нем будет отображаться текст. Приведенные выше функции как раз и возвращают данные параметры.
|
|
|
Записан
|
|
|
|
Kultura
Помогающий
Offline
|
|
« Ответ #13 : 01-04-2009 12:02 » |
|
Serg79, не то. Вопрос не в том, что бы узнать цвет, шрифт, а в том, что бы их поменять на свои.
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #14 : 01-04-2009 12:06 » |
|
Kultura, ну Ты прям как маленький. COLORREF SetTextColor( HDC hdc, // handle to DC COLORREF crColor // text color );
Это что бы изменить цвет. Что бы изменить шрифт, надо его создать, после чего прикрепить его к контексту окна.
|
|
|
Записан
|
|
|
|
Kultura
Помогающий
Offline
|
|
« Ответ #15 : 02-04-2009 17:12 » |
|
Serg79, это снова не то см. пост номер 7 и 8. Ладно, забей на цвет текста, лучше по обработке (с OWNERDRAW СБ !!!) WM_MENUSELECT и MenuHelp (см. пост 9) подскажи.
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #16 : 02-04-2009 18:43 » |
|
Serg79, это снова не то Ну тогда я пас.
|
|
|
Записан
|
|
|
|
|