PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

#26 10-10-2008 10:15:37

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

L'image est ancrée à une datawindow et occupe tout l'espace disponible de la datawindow. Cette detawindow est elle-même placée par-dessus ma datawindow qui contient les données textuelles, pour faire illusion.

Hors ligne

 

#27 10-10-2008 11:27:42

cposervices  
Membre completement Geek
Date d'inscription: 02-07-2008
Messages: 106
Pépites: 1,000,382
Banque: 0

Re: Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

Mais non, tu mets une dw, un picture control, tu mets à jour ta dw et ton picture control lorsque les données change. Tu prends le HDC de ton picture control (lui, tu peux, il en a 1) et tu l'imprimes.

Hors ligne

 

#28 10-10-2008 12:37:43

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

Dit comme ça... Ca parait simple... Mais là je n'y comprends plus rien aux HDC :-/
J'ai tenté de récupérer celui de ma fenêtre pour l'imprimer, en passant par GetDC de user32.dll, ou par CreateDC de gdi32.dll. J'ai aussi voulu obtenir le HDC de mon imprimante via l'OCX MSComDLG de Microsoft.

Au final je ne sais même plus comment je dois m'y prendre si je veux tenter d'obtenir le HDC de mon Picture Control.

Enfin, je ne cherche pas à simplement imprimer le picture control, mais toute la datawindow (logos, titre, données textuelle, image, ...).

Hors ligne

 

#29 10-10-2008 13:54:31

cposervices  
Membre completement Geek
Date d'inscription: 02-07-2008
Messages: 106
Pépites: 1,000,382
Banque: 0

Re: Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

Va dans l'aide PB, et recherche la fonction handle...

Hors ligne

 

#30 10-10-2008 14:16:30

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

Return value

Long. Returns the handle of objectname. If objectname is an application and  previous is true, Handle always returns 0.
If objectname cannot be referenced at runtime, Handle returns 0 (for example, if objectname is a window and is not open).

Code: pb

messagebox('', string(handle(ma_datawindow.object.mon_picture_control)))


Moi ça me retourne 0.
PowerBuilder 10.2.0 build 8075.

C'est précisément pour ça que je cherche une solution de contournement ;)

Dernière modification par Nyphel (10-10-2008 14:19:47)

Hors ligne

 

#31 10-10-2008 14:25:06

cposervices  
Membre completement Geek
Date d'inscription: 02-07-2008
Messages: 106
Pépites: 1,000,382
Banque: 0

Re: Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

Et le handle(ma_datawindow) te retroune quoi ?

Tu n'as pas de handle sur les objets ionternes à une DW. Il n'existe pas pour window, ils sont 'dessinés' par PB.

Place un picture control 'normal'.

Hors ligne

 

#32 10-10-2008 14:35:01

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

Le handle de ma datawindow est correctement retourné.
Si je place un picture control par-dessus ma datawindow, alors je devrai imprimer toute la fenêtre et non plus uniquement la datawindow. Dès lors cette solution ne me convient pas car :
- ma datawindow et mon picture control seront masqués. Si ils sont masqués et que j'imprime la fenêtre, alors Pb ne les imprime pas.
- en admettant que je rende temporairement visibles ma datawindow et mon picture control pour imprimer la fenêtre, alors l'impression est de type Screenshot/ImpriEcran : Pb imprime ce qu'il voit, y compris les mesnus, barres d'actions et icones de la fenêtres, barre des tâches et menu démarrer de Windows.

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » Impression d'une fenêtre en utilisant l'événement Windows : WM_PRINT

Pied de page des forums

Propulsé par FluxBB 1.2.22