FCanvas

Canvas stellt verschiedene Funktionen zum Zeichnen auf ein beliebiges Control zur Verfügung.
Es hat keine eigene Zeichnenfläche und auch kein eigenes Handle.
Es muss einem Control zugewiesn werden wenn es benötigt wird. Vorzugsweise Form, Panel
Eigenschaften und Funktionen dürfen erst nach Zuordnung verwendet werden !

PropertyDatentyp(Read/Write)Hinweise
cHeightInteger (R) Weite der Zeichnfläche. Ist der Clientbereich des zugeordneten Control.
cWidthInteger (R) Höhe der Zeichnfläche. Ist der Clientbereich des zugeordneten Control.
cImageHeightInteger (R) Dimension Height des mit cImageFromFile geladenen Bildes.
cImageWidthInteger (R) Dimension Width des mit cImageFromFile geladenen Bildes.
cImgDCHDC (R) hDC des mit cImageFromFile geladenen Bildes
chDCHDC (R) hDC des zugeordneten Control in das gezeichnet wird
cImageBKColorCOLORREF (R/W) Bestimmt die Hintergrundfarbe des mit cImageFromFile geladenen Bildes. Nur bei Bildern mit Transparenten Bereichen. Muss vor cImageFromFile gesetzt werden.
CursorInteger (R/W) Setzt den Cursor. 0=IDC_ARROW (voreingestellt), 1=IDC_CROSS, 2=IDC_SIZEALL, 3=IDC_SIZENESW, 4=IDC_SIZENS , 5=IDC_SIZENWSE ,6=IDC_SIZEWE, 7=IDC_HAND
cPenColorCOLORREF (R/W) Stiftfarbe (schwarz voreingestellt)
cPenWidthInteger (R/W) Stiftbreite in Pixel (1 px voreingestellt)
cPenStyleInteger (R/W) 0 = PS_NULL, 1 = PS_SOLID (voreingestellt), 2 = PS_DASH, 3 = PS_DOT, 4 = PS_DASHDOT, 4 = PS_DASHDOTDOT
cTextColorCOLORREF (R/W) Textfarbe der Textausgabe
cRopUInteger (R/W) Rasteroperation beim Zeichnen (voreingestellt ist R2_COPYPEN siehe SetRop2 in der Win32Help )
SUB ArgumenteHinweis
cAttach (ByVal hWnd As HWND) Handle des Control in dem gezeichnet werden soll
Sub cLine (ByVal StartX As Integer, ByVal StartY As Integer, ByVal EndX As Integer, ByVal EndY As Integer) Zeichnet eine Linie
Sub cPolyLine (ByVal pt As Point Ptr, ByVal nCount As Integer, ByVal fill As Integer) Zeichnet eine Linie (max 64 Point)
pt = Array Ptr mit Koordinaten, Anzahl der enthaltenen Elemente, fill = True füllt mit aktueller Brush und Zeichnet mit aktuellen Pen, sonst nur Linien
Sub cRectangle (ByVal X As Integer, ByVal Y As Integer, ByVal Weite As Integer, ByVal Höhe As Integer) Zeichnet ein Rechteck mit akt. Pen und füllt es mit akt. Brush. Argument 3 + 4 sind Breite und Höhe keine Koordinaten
Sub cEllipse (ByVal X As Integer, ByVal Y As Integer, ByVal Weite As Integer, ByVal Höhe As Integer) Zeichnet eine Ellipse mit akt. Pen und füllt es mit akt. Brush. Argument 3 + 4 sind Breite und Höhe keine Koordinaten
Sub cFillRect (ByVal cr As RECT Ptr ) Füllt einen Breich mit der akt. Brush
Auch hier rc.Right und rc.Bottom die Höhe und Breite des Bereiches der gefüllt werden soll
Sub cTextOut (ByVal x As Integer,ByVal y As Integer,sText As String ) Text ausgeben
Sub cTextRect (ByVal canvRC As RECT Ptr ,sText As String ,ByVal BGColor As UInteger) Text ausgeben zentriert im Rect . (rc.Right und rc.Bottom ist Höhe und Breite )
BGColor = Farbe des Hintergrunds oder -1 für dann Transparent
Sub cCopyRect (ByVal canvRC As RECT Ptr , ByVal quellDC As HDC, ByVal quellRC As RECT Ptr) Ist zum kopieren des mit cImageFromFile geladenen Bildes (oder Teile davon)
Sub cSaveToFile ( filename As String) Speichert Canvas als Bitmap
Sub cImageFromFile ( filename As String) Läd ein Bild (jpg,png,bmp,gif,tiff)
Sub cHatchBrush (ByVal fnStyle As integer ,ByVal nColor As COLORREF) Generiert eine HatchBrush in der Farbe nColor.
fnStyle = einer der Style : HS_BDIAGONAL , HS_CROSS, HS_DIAGCROSS, HS_FDIAGONAL, HS_HORIZONTAL , HS_VERTICAL (siehe auch Win32Help)
Sub cSolidBrush ( ByVal nColor As COLORREF) Generiert eine SolidBrush in der Farbe nColor
Sub cPatternBrush ( sName As String) Generiert eine PatternBrush.sName muss ein Bitmap sein aus Datei oder Resource
Function cTextHeight ( s As String) As Integer Text-Höhe in px des übergebenen Text
Function cTextWidth ( s As String) As Integer Text-Länge in px des übergebenen Text
Sub cSize (ByVal w As Integer,ByVal h As Integer) Setzt die Werte cHeight(h) und cWidth(w). Diese Werte werden bei Attach automatisch gesetzt.
Sub cFont (Face As String,
ByVal size As Integer,
ByVal bold As Integer,
ByVal italic As Integer,
ByVal underlin As Integer)
Schrift-Name
Schriftgröße
1=bold,0=normal
1=italic,0=normal
1=underlin,0=normal
Sub cRestoreFont keine Stellt die Schrift von vor Sub cFont wieder her. Sollte immer nach Verwendung der geänderten Schrift aufgerufen werden
Beispiel :
    
    #Include "winFBgui.bi"
    
    
    Dim Shared As FForm form1
    Dim Shared As FCanvas Ptr boxCanvas
    boxCanvas=New FCanvas
    
    Sub Form1_ButtonDown(ByVal x As Integer,ByVal y As Integer,ByVal f As Integer)		
        boxCanvas->cSaveToFile("Desktop.bmp")	
    End Sub
    
    
    form1.Create("Testform",0,0,870,720)
    form1.Color = bgr(185,205,255)
    Form1.onlButtonDown=@Form1_ButtonDown
    
    Dim As HWND hDesk
    hDesk = GetDesktopWindow
    boxCanvas->cAttach(hDesk)  '<-- Zuordnung zum Desktop'
    
    
    form1.Show
    
    Delete boxCanvas
    ExitProcess(0)
    End
    

Der komplette Desktop wird in Datei gespeichert