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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отрисовка в OWNERDRAW контролов 
:(
    Опции темы
ZC1989
Дата 3.3.2008, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

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



Здрасти)  у меня по отрисовке вопросы, окошечко рисую сам, и хочу вместо виндовского стиля рисовать картинки на них…  с кнопками я разобрался…

1)    Как рисовать ListView, когда я ставлю BS_OWNERDRAW  то слетают все стили(REPORT…)… - эмм…так панимаю рисовать придёться всё самому…  а как?
2)    Тож самое только TaskBar
3)    …ScrollBar
4)    Как отслежывать третье состояние для объектов…когда мышка только наведена на них?
Кнопочку я рисую так 

Код

// SBotData &BotData – это у мя данные о кнопке и её HWND в nContol
void    DrawBotton(SBotData &BotData, LPDRAWITEMSTRUCT lpdis, HBITMAP hBitmapNorm, HBITMAP hBitmapDown)
{
    if(lpdis->CtlType != ODT_BUTTON)
        return; 

    HDC    hdcTemp = CreateCompatibleDC(lpdis->hDC);  
 
    if(lpdis->hwndItem == BotData.nContol)
    { 
        if(lpdis->itemState & ODS_SELECTED)
            SelectObject(hdcTemp, hBitmapDown);
        else
            SelectObject(hdcTemp, hBitmapNorm);
    } 
 
    StretchBlt(
                    lpdis->hDC, 
                    lpdis->rcItem.left, 
                    lpdis->rcItem.top, 
                    lpdis->rcItem.right - lpdis->rcItem.left, 
                    lpdis->rcItem.bottom - lpdis->rcItem.top, 
                    hdcTemp, 
                    BotData.x, 
                    BotData.y, 
                    BotData.width, 
                    BotData.height, 
                    SRCCOPY);  
 
    DeleteDC(hdcTemp);
}


Заранее пасипа))



--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Earnest
Дата 6.3.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



1) Что значит "как"? Вот ручками все и рисуй: цикл по итемам, спрашиваешь, какой у итема рект, потом цикл по саб-итемам...
но если у тебя вопрос только в том, что вместо фона нужно картинку подсунуть, то проще через CustomDraw: обрабтай только стирание фона (подсунь свою картинку), а дальше пусть само...
2)-3) Аналогично (насчет режима CustomDraw для ScrollBar - не уверена, что есть)
4) Так и отслеживай: по движению мыши. Чтобы убрать "hot", нужно поймать уход мыши с кнопки, для этого при заходе мыши на кнопку - ставь Capture, при сходе - снимай. 


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


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

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