Textausgabe in Image haut einfach nicht hin
Verfasst: 21.04.2006 21:55
Hallo. Ich hab mich in den Boards wundgesucht, find aber keine Lösung. Wer weiß, was ich falsch mache?
StartDrawing(ImageOutput()) soll ja laut Doku den DC zurückliefern, was es wohl auch richtig macht, denn das blaue Quadrat erscheint mit FillRect_ korrekt im Image.
DrawText_ macht aber keinerlei Anstalten, den Text wie gewünscht innerhalb des RECTs vertikal und horizontal zu zentrieren, sondern setzt ihn bei 0, 0 ab und clippt ihn auch noch.
Was muss ich machen, damit DrawText_ in einem Image richtig funktioniert?
StartDrawing(ImageOutput()) soll ja laut Doku den DC zurückliefern, was es wohl auch richtig macht, denn das blaue Quadrat erscheint mit FillRect_ korrekt im Image.
DrawText_ macht aber keinerlei Anstalten, den Text wie gewünscht innerhalb des RECTs vertikal und horizontal zu zentrieren, sondern setzt ihn bei 0, 0 ab und clippt ihn auch noch.
Was muss ich machen, damit DrawText_ in einem Image richtig funktioniert?
Code: Alles auswählen
Procedure WindowCallback(WindowID, Message, lParam, wParam)
If Message = #WM_PAINT
StartDrawing(WindowOutput())
DrawImage(UseImage(0), 40, 10)
StopDrawing()
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0, 100, 100, 500, 300, #PB_Window_SystemMenu, "PureBasic - Image")
Gosub CreateImage
SetWindowCallback(@WindowCallback())
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_Event_CloseWindow
EndIf
End
CreateImage:
If CreateImage(0, 255, 255)
imageDC=StartDrawing(ImageOutput())
trec.RECT
trec\left=5: trec\top=5: trec\right=100: trec\bottom=100
hBrush = CreateSolidBrush_($ff0000)
FillRect_(imageDC, trec, hBrush)
DrawText_(imageDC,"TEXT",Len("TEXT"),trec,#DT_CENTER|#DT_VCENTER|#DT_SINGLELINE)
StopDrawing()
EndIf
Return