Page 1 of 1

draw with poligon

Posted: Tue Dec 26, 2006 11:03 pm
by Silvio
Image
I must create this bitmap with poligon function so that it is divided in four various pieces so that I can move them with the mouse : the three bars and the small triangle (with drag and drop)
it' is possible ?

Posted: Sat Dec 30, 2006 5:25 pm
by Antonio Linares
Silvio,

You may check where the mouse is clicked and change the mouse cursor to a one that also paints the portion that you want to move. When the mouse is released then you check where it is and change the drawing accordingly.

Posted: Sat Dec 30, 2006 11:52 pm
by Silvio
thanks but i not know how make it
can you create a small test to work on ?

Posted: Sun Dec 31, 2006 6:08 am
by Antonio Linares
Silvio,

Please implement the PolyPoligon() calls to draw the different parts of your drawing first, thanks

Then I will show you how to move them,

Posted: Mon Jan 01, 2007 11:33 pm
by Silvio
i not know how make it

Posted: Tue Nov 20, 2007 9:19 am
by Silvio
Antonio,
this is the code
#include "FiveWin.ch"



Function Main()

Local obtn,oWnd
Local oGrayBrush := CreateSolidBrush( GetSysColor(15) )
local hDC := GetDC()

DEFINE WINDOW oWnd TITLE "Testing button" ;
FROM 3, 3 TO 20, 80 ;
COLOR CLR_BLACK, GetSysColor( COLOR_BTNFACE )

obtn:=Arrow_SX(hDC,11, oWnd:nWidth - 25 + 2 , oGrayBrush)




ACTIVATE WINDOW oWnd
Return nil





static Function DrawPolygon( hDC, aPoints, nColor )
local n
local nLen := len( aPoints )
local hPen, hOldPen

if nColor != nil
hPen := CreatePen( PS_SOLID,1,nColor)
hOldPen := SelectObject( hDC, hPen )
endif

Moveto( hDC, aPoints[1,1], aPoints[1,2])
for n := 2 to nLen
Lineto( hDC, aPoints[n,1], aPoints[n,2])
next
Lineto( hDC, aPoints[1,1], aPoints[1,2])

if nColor != nil
SelectObject(hDC,hOldPen)
DeleteObject( hPen )
endif

return 0


Function Arrow_SX ( hDC,nTop,nLeft, nColor )

DrawPolygon( hDC, { {nLeft+4,nTop } ,;
{nLeft ,nTop+4 } ,;
{nLeft+4,nTop+8 } ,;
{nLeft+4,nTop } }, nColor )

return 0


How I can move it ?

Posted: Tue Nov 20, 2007 9:48 am
by Antonio Linares
Silvio,

You have to find the area where the mouse is clicked and then select a mouse cursor based on the underlying drawing