@sobi
Dein Code wäre prinzipiell schon richtig, aber leider scheint bei der
Ausgabe auf ein Image die API-Funktion Textout_ die Angabe der
X und Y Koordinaten zu ignoriren. Dadurch, daß immer 0,0 als
Startpunkt des Textes benutzt wird, wird bei 90 Grad der Text komplett
aus dem Image herausgedreht und deshalb nicht angezeigt. Den Grund
konnte ich bis jetzt noch nicht ermitteln. Eventuell weis ein anderer User
ja den Grund dafür.
Gruß FGK
Habe den Code etwas umgebaut - mit 0-45 Grad hauts noch hin,
da siehst du noch ein bischen vom Text.
Code: Alles auswählen
Procedure t_senkrecht(x.L,y.L,text.s,ImgNr.L)
#FONT_SIZE=12
hdc = StartDrawing(ImageOutput(ImgNr))
Debug hdc
DrawingMode(0)
Box(0,0,100,200,RGB(255,255,255))
FrontColor(RGB(0,0,0))
DrawingMode(1)
NewFont.LOGFONT
FontName.s = "Arial"+Chr(0)
NewFont\lfFaceName=@FontName
NewFont\lfEscapement = 0
NewFont\lfHeight = (#FONT_SIZE+2)
hFont = CreateFontIndirect_(NewFont)
oldFont = SelectObject_(hdc,hFont)
;SetBkMode_(hdc,#TRANSPARENT); erweitert :D
TextOut_(hdc,100,100,text.s,Len(text.s)) ; Hier stimmt was nicht!
RetVal = SelectObject_(hdc,oldFont)
RetVal=DeleteObject_(hFont)
StopDrawing()
EndProcedure
If OpenWindow(0, 100, 200, 640,480, "PureBasic Window",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_WindowCentered )
CreateImage(2,100,100)
t_senkrecht(10,50,"TEST",2)
CreateGadgetList(WindowID(0))
ImageGadget(1,50,50,100,100,ImageID(2))
Repeat
EventID.L = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
Until Quit = 1
EndIf
End