hDC = GetDC_(...) auf Sprite oder #Image_Gadget anwenden

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

hDC = GetDC_(...) auf Sprite oder #Image_Gadget anwenden

Beitrag von funkheld »

Hallo, guten Tag.
Kann man dieses hDC = GetDC_(...) auf Sprite oder #ImageGadget anwenden ?
Wenn ja , wie geht das bitte?

Danke.
Gruss
Benutzeravatar
mk-soft
Beiträge: 3902
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: hDC = GetDC_(...) auf Sprite oder #Image_Gadget anwende

Beitrag von mk-soft »

Nicht getestet...

hDC = GetDC_(GadgetID(#Gadget???))
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: hDC = GetDC_(...) auf Sprite oder #Image_Gadget anwende

Beitrag von funkheld »

Hmm..., geht wohl doch nicht.
Bei mir funktioniert es nicht.

Danke.
Gruss
Zuletzt geändert von funkheld am 07.04.2014 23:10, insgesamt 1-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8837
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: hDC = GetDC_(...) auf Sprite oder #Image_Gadget anwende

Beitrag von NicTheQuick »

Ich bin kein Windows-User, aber normalerweise sollte 'ImageID()' in Verbindung mit 'GetDC_()' funktionieren. Mit Sprites geht es nicht, weil die über DirectX oder OpenGL funktionieren und nichts mit der Windows-GDI am Hut haben.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: hDC = GetDC_(...) auf Sprite oder #Image_Gadget anwende

Beitrag von funkheld »

Jup danke.
Mit ImageID() wird auch nicht gezeichnet.

Gruss

Code: Alles auswählen

CreateImage(#Image_1, 200,200, 24, $0)
ImageGadget(#Image_Gadget_1, 120,  10, 200,200, ImageID(#Image_1))

*DC = GetDC_( ImageID(#Image_1))         
Ellipse_(*DC, 10, 10, 100, 100)  
ReleaseDC_( ImageID(#Image_1), *DC) 
ImageGadget(#Image_Gadget_1, 120,  10, 200,200, ImageID(#Image_1))
Benutzeravatar
chi
Beiträge: 90
Registriert: 17.05.2007 09:30
Wohnort: Austria

Re: hDC = GetDC_(...) auf Sprite oder #Image_Gadget anwende

Beitrag von chi »

so ähnlich... ;)

Code: Alles auswählen

OpenWindow(0, 0, 0, 640, 400, "click on the canvas", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)

CreateImage(0, WindowWidth(0)-20, WindowHeight(0)-20)
ImageGadget(0, 10, 10, WindowWidth(0)-20, WindowHeight(0)-20, ImageID(0))

Repeat
  event = WaitWindowEvent()
  Select event
    Case #WM_LBUTTONDOWN, #WM_LBUTTONDBLCLK
      
      hDC = GetDC_(GadgetID(0))
      
      oImg = SelectObject_(hDC, ImageID(0))
      
      brush = CreateSolidBrush_(RGB(Random(255),Random(255),Random(255)))
      oBrush = SelectObject_(hDC, brush)
      
      Ellipse_(hDC, Random(WindowWidth(0)-20), Random(WindowHeight(0)-20),  Random(WindowWidth(0)-20), Random(WindowHeight(0)-20))
      
      SelectObject_(hDC, oBrush)
      DeleteObject_(brush)
      
      SelectObject_(hDC, oImg)
      
      DeleteDC_(hDC)
      
  EndSelect
Until event = #PB_Event_CloseWindow
Antworten