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);
}

<< Prev

Next >>

Contents
Fastgraph Home Page

 

copyright 2001 Ted Gruber Software, Inc.