Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Проблемы с прозрачностью и OnClick


Автор: SenkraD 3.4.2007, 23:12
Написал контрол у него есть 3 графических свойства типа TPicture.
В зависимости от состояния рисую тот или иной скин:
Код

void __fastcall TGraphicButton::Paint(void)
{
    //.............
    if(m_pNormalSkin)
   {
       m_pNormalSkin->Graphic->Transparent = true;
       Canvas->StretchDraw(ClientRect, m_pNormalSkin->Graphic)
   }
   //.............
}

Да ещё у контрола есть свойство AutoSize и оно равно true.

Теперь проблема когда я щёлкаю мышью на прозрачном участке кнопки, то срабатывает OnClick.
Как сделать чтобы оно не срабатывало?

Автор: megabist 4.4.2007, 08:42
Тоесть чтобы работало не по всей кнопке? а только на опр кусках, так? Просто не понял вопрос

Автор: Bunny 4.4.2007, 09:35
Единственное что приходит на ум, это при событии OnClick проверять цвет пикселя в месте клика с фоновым и потом уже взависимости от совпадения или несовпадения обрабатывать клик.

Автор: SenkraD 4.4.2007, 09:45
megabist, да.

Bunny, я так тоже думал делать, но мож есть какие-то ещё идеи?

Автор: RatHat 4.4.2007, 10:31
SenkraD, попробуй создавать полигон по 4-м точкам - у тебя же кнопка четырёхугольная...
И если клик прошёл в полигоне, то обрабатывать как клик по кнопке...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)