Page 1 of 1

circles on xharbour( fw)

Posted: Mon Mar 27, 2006 12:04 pm
by Silvio
How create tree concentric circles ?

Regards

Posted: Mon Mar 27, 2006 12:20 pm
by Antonio Linares
Silvio,

Code: Select all

BOOL Ellipse(
    HDC hdc,	// handle to device context 
    int nLeftRect,	// x-coord. of bounding rectangle's upper-left corner 
    int nTopRect,	// y-coord. of bounding rectangle's upper-left corner  
    int nRightRect,	// x-coord. of bounding rectangle's lower-right corner  
    int nBottomRect 	// y-coord. bounding rectangle's f lower-right corner  
   );

Posted: Mon Mar 27, 2006 12:24 pm
by Silvio
if I have

Code: Select all

 Rectangle( ::hDC, nX, nY, nX + ::nHeight, ( nY += ::nPinWidth ) )
with ellipse

Code: Select all

 ellipse( ::hDC, nX, nY, nX + ::nHeight, ( nY += ::nPinWidth ) )
I try it but it not draw circle concentric

Re: circles on xharbour( fw)

Posted: Mon Mar 27, 2006 12:50 pm
by Enrico Maria Giordano
This is a working sample:

Code: Select all

#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg

    LOCAL nX := 100
    LOCAL nY := 100

    LOCAL nMinRad := 20
    LOCAL nMaxRad := 100

    LOCAL nStep := 10

    DEFINE DIALOG oDlg;
           SIZE 200, 200

    ACTIVATE DIALOG oDlg;
             ON PAINT CIRCLES( oDlg, hDC, nX, nY, nMinRad, nMaxRad, nStep );
             CENTER

    RETURN NIL


#define BRUSH_NULL 5


STATIC FUNCTION CIRCLES( oDlg, hDC, nX, nY, nMinRad, nMaxRad, nStep )

    LOCAL hOldBrush := SELECTOBJECT( hDC, GETSTOCKOBJECT( BRUSH_NULL ) )

    LOCAL i

    FOR i = nMinRad TO nMaxRad STEP nStep
        oDlg:Circle( nX - i, nY - i, i * 2 )
    NEXT

    SELECTOBJECT( hDC, hOldBrush )

    RETURN NIL
EMG