Курсовая работа: Построение компоненты в Builder C++
this->Canvas->Brush->Color=clSkyBlue;
this->Canvas->Font->Size=this->Height/20;
this->Canvas->TextOutA(this->Width/4,3,"Моя компонента");
}
//---------------------------------------------------------------------------
С помощью метода Paint() выведем текст на компоненту.
7 Переопределение метода WndProc(TMessage& Message)
Каждый компонент, имеющий свой собственный дескриптор окна, имеет и виртуальный метод по имени WndProc(). Этот метод вызывается каждый раз, когда Windows или VCL посылает сообщение окну компонента.
Прежде чем начать описание применения метода WndProc(), сосредоточимся на использовании таймера в компоненте. Таймер запускается в методе CreateWnd():
SetTimer (Handle, 1, FSkorosty, 0).В эту функцию в качестве параметров передаются дескриптор окна компонента, 1 - как идентификатор таймера, FSkorosty - как интервал таймера) и 0 в качестве значения последнего параметра, который используется только в случае, если вы применяете функцию обратного вызова таймера. В этом примере сообщается, что Windows следует посылать сообщение WM_TIMER моей оконной процедуре окна.
Удаление таймера осуществляется в деструкторе компоненты:
KillTimer (Handle, 1) ;
Внутри этого метода выполняется соответствующая обработка сообщения
WM_TIMER:
//---------------------------------------------------------------------------
void __fastcall TOsnova::WndProc(TMessage& Message)
{
TCustomControl::WndProc(Message); //базовыйметод
if (Message.Msg == WM_TIMER)
{
//проверяем, изменилисьлиразмеры
if ((N==true)&&( this->Width!=NewWidth)&&(this->Height!=NewHeight))
{
this->Width=NewWidth;
this->Height=NewHeight;
D=this->Width/5*4;
d=this->Width/5*3;
Marshrut->Width=this->Width;
Marshrut->Height=this->Height
Shar->Width=(D-d)/2;