ich wollte mal, statt den GRA Function, mittels GDI32 API "malen".
Code: Alles auswählen
DLLFUNCTION MoveToEx(nHDC, nX, nY, hOld) USING STDCALL FROM GDI32.DLL
DLLFUNCTION LineTo(nHDC, nX, nY) USING STDCALL FROM GDI32.DLL
DLLFUNCTION Rectangle(hDC, nLeft, nTop, nRight, nBottom) USING STDCALL FROM GDI32.DLL
DLLFUNCTION Ellipse(hDC, nLeft, nTop, nRight, nBottom) USING STDCALL FROM GDI32.DLL
PROCEDURE ApiPoint(nHDC, aPoint)
MoveToEx(nHDC, aPoint[1], snY - aPoint[2], 0)
RETURN
PROCEDURE ApiLine(nHDC, aStart, aEnd)
IF aStart <> NIL
MoveToEx(nHDC, aStart[1], snY - aStart[2], 0)
ENDIF
LineTo(nHDC, aEnd[1], snY - aEnd[2])
RETURN
PROCEDURE ApiStringAt(nHDC, aPoint, cText)
MoveToEx(nHDC, aPoint[1], snY - aPoint[2], 0)
TextOutA(nHDC, aPoint[1], snY - aPoint[2], cText, LEN(cText))
RETURN
PROCEDURE ApiBox(nHDC, aStart, aEnd)
Rectangle(nHDC, aStart[1], snY - aStart[2], aEnd[1], snY - aEnd[2])
RETURN
PROCEDURE ApiArc(nHdc, aPoint, nRadius)
Ellipse(nHDC, aPoint[1] - nRadius, (snY - aPoint[2]) - nRadius, aPoint[1] + nRadius, (snY - aPoint[2]) + nRadius)
RETURN
Der 7st Parameter [<nFill>] fehlt und er nimmt GRA_FILL statt GRA_OUTLINE.
Code: Alles auswählen
#IfDef APIHDC
ApiArc(nHDC, { nXpos,nYpos }, nXpos/4*3 )
#Else
GraArc( oPS, { nXpos,nYpos }, nXpos/4*3, , Int( 360 * (360-(::nSS / 60)) )+90, 0 )
#EndIf
auch "scheine" ich nicht GraSetAttrLine() / GraSetAttrArea() mit den GDI32 API "mixen" zu können, oder ? wenn ja "wie" (Bespiel erwünscht)