Toon posts:

[VB.NET] Screenshot maken van form, welke niet open is

Pagina: 1
Acties:
  • 244 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,
ik probeer een screenshot te maken te maken van een form maar, deze moet die altijd kunnen tonen, ook al is deze nog niet open (of zichtbaar).
Iemand enig idee?

ik kan perfect screenshot maken van mijn form, maar enkel als deze open staat. Ook als ik een ander venster ervoor zet komt dat venster dan in mijn screenshot te staan, wat natuurlijk niet echt de bedoeling is.
Dus eigenlijk wil ik weten wat de inhoudt van mijn form (=een label met paar andere dingen) gaat zijn zonder dat deze open staat.

Als jullie ideeen hebben hoor ik het graag, want ik ben er al bijna twee dagen mee bezig, maar nog niets goeds gevonden.

alvast bedankt :)

Verwijderd

Gaat niet lukken, tenminste niet met de standaard opties. Hoe denk je een screenshot te kunnen maken van iets dat niet op 't screen staat???

Verwijderd

Topicstarter
Verwijderd schreef op zaterdag 23 juni 2007 @ 15:02:
Gaat niet lukken, tenminste niet met de standaard opties. Hoe denk je een screenshot te kunnen maken van iets dat niet op 't screen staat???
het onzichtbaar openen, en dan weet ie toch infeite wat erop staat en wat niet. Hij mag het wel openen, maar niet tonen zeg maar...
+ alle andere methoden die ik heb gevonden (screenshot nemen van form) gaan de mist in zodra je iets ervoor schuift enzo...

[ Voor 13% gewijzigd door Verwijderd op 23-06-2007 15:10 ]


Verwijderd

Gaat je niet lukken, GDI zorgt voor de weergave van een form (en die kun je gerust bitblt'en, daarvoor zou ik geen screenshot functie oid gebruiken) (overigens kun je het ook regelen via WPF, maar ik neem aan dat je met GDI werkt) en die zal pas de boel opbouwen bij het daadwerkelijk showen van de form.

Ik weet wel een manier om het te regelen (waarschijnlijk), maar dan moet je ranzige low-level DLL functies aanroepen om de grafische context te laden voordat het ding wordt weergegeven.

Het beste is waarschijnlijk het ding even te tonen, te bitblt'en en deze vervolgens weer te verbergen. Als je dit in een blocking thread doet kun je er wellicht voor zorgen dat de form niet daadwerkelijk op het scherm getoond wordt (of dan heel kort).

  • Flard
  • Registratie: Februari 2001
  • Laatst online: 25-11 23:28
Ik weet niet zeker of het mogelijk is, maar wellicht een invalshoek.

Maak een (in-memory) Bitmap aan, en haal vervolgens het Graphics-object op voor die bitmap.

Roep vervolgens de Paint()-methode aan van het form waarvan je de image wil hebben. Deze heeft volgens mij een PaintEventArgs parameter nodig, met daarin het Graphics-object waarop getekend mag worden, en een ClipRegion voor het te tekenen gedeelte. Deze Region kun je bouwen a.d.h.v. de eigenschappen van het form.

Verwijderd

Topicstarter
Hmm, moeilijk dus allemaal. Ga toch maar eens kijken of ik het niet op een andere manier kan oplossen.
Toch bedankt!
Pagina: 1