Просмотр полной версии : С++ и кнопки. Help !!!
Собственно вопрос вот в чем.
Как залить цветом кнопку.В языке С++.
Т.Е. надо сделать так ,чтобы при наведении курсора на кнопку она меняла цвет .
Среда разработки C++Builder 5
За ранее спасибо !!!
M_script_
05.10.2009, 08:11
В классе TButton изменить цвет нельзя. Для этого нужно использовать свой класс.
Создавать свой класс трудновато.
M_script_
05.10.2009, 20:29
Создавать свой класс трудновато.
Ничего трудного. Используй стандартные классы и возможности ООП =)
Согласен с предыдущим комментом,но есть предложение попроще.
Мало работал в данной среде,но если мне не изменяет память,то стоит нарисовать какой-нибудь фон и использовать SpeesButton или BitBtn.
M_script_
06.10.2009, 11:44
Используй TLabel, там можно менять цвет фона и шрифта.
Я не знаю правильно или нет ,но я нашел выход вот какой:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
Form1->Panel1->BevelInner= bvLowered ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Form1->Panel1->BevelInner=bvSpace ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1Click(TObject *Sender)
{
if (Panel1->Color==clBlue)
Panel1->Color=clRed ;
else Panel1->Color=clBlue ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
Panel2->BevelInner=bvLowered ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Panel2->BevelInner=bvSpace ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if((X>1)&&(X<Panel2->Width-1)&&(Y>1)&&(Y<Panel2->Height-1))
Panel2->Color=clRed ;
else
Panel2->Color=clBlue ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Panel2Exit(TObject *Sender)
{
Panel2->Color=clBlue ;
}
//---------------------------------------------------------------------------
Использовал Panel.
Кто знает более оптимальный вариант ,буду благодарен.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot