Seite 1 von 1

BitBlt unter PB

Verfasst: 04.09.2005 13:34
von blbltheworm
Hallo zusammen,
ich hab mit VB relativ viel mit BitBlt gearbeitet und wollte das nun auch unter PB machen.
Jedoch scheine ich nicht zu kapieren wie das unter PB gehandhabt wird.
Was ist der DC eines Images und was ist der DC eines ImageGadgets, oder überhaupt eines Gadgets.

Kann mir bitte irgendjemand ein simples Beispiel zukommen lassen in dem gezeigt wird wie man.

1. mit BitBlt von einem Image in ein anderes kopiert
2. von einem Image in ein ImageGadget
3. von einem ImageGadget auf ein Window

Bitte hier ein kleines Codebeispiel posten, denn wie gesagt, ich komme nicht dahinter.

Verfasst: 04.09.2005 14:11
von Ynnus
In PB gibts dafür vorgefertigtes Zeugs, etwa StartDrawing(), DrawImage() usw. (Damit kann man auch Images in anderen Images zeichnen oder Images auf Fenster usw.)

Ansonsten geht das mit den DCs genauso wie es die WInAPI vorhergesehen hat. Mit GetDC oder CreateCompatibleDC oder vergleichbaren Funktionen kann man den DC eines Fensters oder eines Images ermitteln und dann mit bitblt darauf zeichnen lassen.
Also Bitblt ist ja nun keine Erfindung von VB sondern vom Betriebssystem, daher dürfte es eigentlich überall gleich funktionieren.

Verfasst: 04.09.2005 17:50
von blbltheworm
Dass es PB eigene Funktionen gibt weiß ich, aber mein großes Ziel ist es von PB aus in eine andere Anwendung hinein zu zeichnen und da komme ich mit den PB eigenen Funktionen dann nicht mehr weit.
Könntest du mir ein kleines Beispiel zeigen, wie ich mit BitBlt in PB arbeite??
Also nicht anwendungsübergreifend.
In VB ist das ganze äußerst einfach, da man auf den DC als Wert eines jeden Steuerelementes zugreifen kann. Aber wie das ganze unter PB funktioniert entzieht sich leider meinen Kenntnissen.

Verfasst: 04.09.2005 18:01
von Nouba
Wenn hWnd des Fensters bekannt ist, sollte mit GetDC_(hWnd) der Display Device Context ermittelbar sein. Der Rest sollte im Prinzip dann genauso einfach wie in VB funktionieren.[/i]

Verfasst: 04.09.2005 18:20
von blbltheworm
OK und wie komm ich an die Werte mit PB??
Und woher weiß GetDC von welchem Objekt ich den DC will??

Verfasst: 04.09.2005 18:32
von Ynnus
Und woher weiß GetDC von welchem Objekt ich den DC will??
Schau mal die Funktion an, die hat einen Parameter. Da schreibst du das Handle des Fensters rein. Dann bekommst du den Device Context dieses Fensters.
Wie hast du das bitte vorher in VB gemacht wenn du keine WinAPI verwendet hast?

Verfasst: 04.09.2005 18:43
von blbltheworm
Sorry, ich weiß nie wann man von Fenstern und wann von Fenstern redet.
Du meinst jetzt mit Fenster ein x-beliebiges Steuerelement, egal ob Button, Textbox, Window...
Oder hab ich dich da falsch verstanden??

Und woher bekomme ich den hWnd eines solchen Fensters??

Verfasst: 04.09.2005 18:55
von ts-soft

Code: Alles auswählen

DC1 = GetDC_(WindowID(#MeinWindow))
DC2 = GetDC_(GadgetID(#MeinGadget))

Verfasst: 04.09.2005 18:59
von Ynnus
Es ist total wurscht ob man von Steuerelementen wie buttons oder von Windows = Fenster redet, da beides das gleiche ist in der WinAPI. Daher kannst du GetDC auf beide Elemente anwenden und somit auf Fenster oder auf Buttons zeichnen, wie es dir beliebt.

Verfasst: 04.09.2005 19:09
von blbltheworm
OK, mein Problem ist beseitigt und ich wieder ein klein wenig schlauer.
Vielen Dank an die die (schnelle) Hilfe.