Page 1 of 1

Creating a bmp from a draw...

Posted: Tue Nov 20, 2007 8:59 am
by Silvio
Can I create a bmp or button from a arrow I created drawing it


Code: Select all


#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

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

You have to create manually a TBtnBmp or a TButton.

There is no way to create them automatically from a drawing

Posted: Tue Nov 20, 2007 10:33 am
by Silvio
But i remeber something..
someone from a draw created a compatiblebmp and then made an action on it

Posted: Tue Nov 20, 2007 12:26 pm
by Antonio Linares
Silvio,

A bitmap has no action. A (Class) TBitmap object, yes

Posted: Tue Nov 20, 2007 1:58 pm
by Marcelo Via Giglio
Hi,

if you start with a blank bmp, and draw on these, you can save this modification in other bmp file, try this

hBmp := WndBitmap( obmp:hWnd )
hDib := DibFromBitmap( hBmp )
DibWrite( "bak.bmp", hDib )

I don't know if it's what do you want

saludos

Marcelo