MCdemo: C++Builder Version
The C++Builder version of MCdemo activates the new cursor by assigning its handle to the form's Cursor property near the end of the OnCreate event handler. This makes our new cursor the default cursor within the window's client area. C++Builder automatically frees the mouse cursor
resources when the program exits, so we don't need to call DestroyCursor() as we do for C/C++.
/****************************************************************************\
* *
* MCdemo.cpp *
* MCdemoU.cpp *
* *
* This program shows how to change the shape of the mouse cursor. *
* *
\****************************************************************************/
#include
#pragma hdrstop
#include "MCDemoU.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
fg_realize(hPal);
Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
hDC = GetDC(Form1->Handle);
fg_setdc(hDC);
hPal = fg_defpal();
fg_realize(hPal);
fg_vbinit();
hVB = fg_vballoc(vbWidth,vbHeight);
fg_vbopen(hVB);
fg_vbcolors();
fg_setcolor(20);
fg_fillpage();
fg_mouseini();
Screen->Cursors[crMyCursor] = fg_mouseptr(Cross,6,6);
Cursor = crMyCursor;
Application->OnActivate = OnActivate;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
fg_vbscale(0,vbWidth-1,0,vbHeight-1,0,cxClient-1,0,cyClient-1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
cxClient = ClientWidth;
cyClient = ClientHeight;
Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
fg_vbclose();
fg_vbfree(hVB);
fg_vbfin();
DeleteObject(hPal);
ReleaseDC(Form1->Handle,hDC);
}
|