enton |
Отправлено: 05.03.2007, 10:48 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
проблемма в следующем, помещаю в спид баттон к примеру 1.бмп, причем фон у нее прозрачный, ставлю свойство flat=true, получает виден нужный мне рисунок на фоне окна но он имеет белую рамку в 1п. и не как не могу от этого избавиться( |
|
aquanet sk |
Отправлено: 07.03.2007, 00:19 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 87
|
Та же фигня с рамкой. Я не могу другие типы кнопок окрашивать в нужный мне цвет, поэтому юзал SpeedButton со свойством Flat. |
|
Termi_uc |
Отправлено: 07.03.2007, 19:44 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 61
|
Я не очень понял проблему. Но если нужно, чтобы не рисовалась рамка вокруг кнопки в момент наведения мышки, то самый простой способ — подмена оконной процедуры
Примерно так:
CODE |
TWndMethod OldWindowProc;//Переменная-указатель на старую оконную процедцрц
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Получаем значение старой и устанавливаем новую оконную проц.
OldWindowProc = SpeedButton1->WindowProc;
SpeedButton1->WindowProc = NewWindowProc;
}
//---------------------------------------------------------------------------
//Это собственно оно и есть
void __fastcall TForm1::NewWindowProc(Messages::TMessage &Message)
{
if(Message.Msg != CM_MOUSEENTER && Message.Msg != CM_MOUSELEAVE)//События игнорируются
OldWindowProc(Message);
} |
Только будте осторожны с таким способом если захотите его расширить. Надо учитывать, что при посылки окну сообщения отправитель может дожидатся ответа в переменной Message.Result.
|
|
enton |
Отправлено: 10.03.2007, 16:33 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
вот картинка вставте ее в спидбаттон (flat=true) и фоном ставим какую нибудь фотку, и видим что по контуру рисунка кнопки идет белый цвет( |
|
enton |
Отправлено: 10.03.2007, 16:56 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
вот пример
|
|
Termi_uc |
Отправлено: 13.03.2007, 16:51 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 61
|
QUOTE (enton @ 10.03.2007, 16:33) | вот картинка вставте ее в спидбаттон (flat=true) и фоном ставим какую нибудь фотку, и видим что по контуру рисунка кнопки идет белый цвет( |
Ничего не понял, но пример скачал и сделал. Вот
|
|
enton |
Отправлено: 14.03.2007, 17:52 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
проблема не в рамке кнопки, а в рамке рисунка который на ней!
для наглядности делаем так, качаем пример(у некоторых он уже есть:)) кидаем имдж, вставляем в него любую фотку, спидбаттон там уже есть(с картинкой), дык вот когда мы запускаем прогу то видим что во круг рисунка который на кнопки идет белая рамка в 1п. вот как раз я от нее и не могу избавиться, как раз в ней проблема!!! если открыть картинку которая на кнопке то увидим что у нее прозрачный фон!
если опять не понятно, уточните на каком моменте именно! |
|
aquanet sk |
Отправлено: 15.03.2007, 12:32 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 87
|
т.е. Вы имеете ввиду округлую рамку: те светлые пиксели, которые вокруг синеватого круга с крестиком? Дык я с таким борюсь в Photoshop`e, а белая рамка у меня и без запуска программы видна (та, про которую Вы речь ведете..наверное), см. картинку.
P.S. При компиляции проекта "кнопка" у меня вылетела ошибка [Linker Fatal Error] Fatal: Expected a file name: , ну не суть.
Присоединить изображение
|
|
enton |
Отправлено: 15.03.2007, 17:11 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 44
|
именно! она меня и беспокоит!!!
я пробовал в шопе бороться но похоже не сильно получается.
мне еще подсказали вот что, цвет фона берется из левого верхнего пиксела, в нашем случае он прозрачный, и билдер ставит по умолчанию белый, в этом то как раз и проблемма, как вариант можно было поствить точку в левом верхнем углу и горя не знать, только мне это не подходит потому что картинки смещаются во время юзанья проги( |
|