OVH Cloud OVH Cloud

Il y a une image dans le presse-papier

8 réponses
Avatar
Pierre CHAUVEAU
Bonjour à toutes et à tous,

Soit "L1" un logiciel de traitement d'images, lorsqu'un autre logiciel "L2"
a copié une image dans le presse-papier, le menu "Coller" de "L1" qui était
invalide auparavant, devient valide.

Quel est l'évènement qui a déclenché cela ?

Merci de votre aide.

Pierre.

8 réponses

Avatar
Christian ASTOR
Pierre CHAUVEAU wrote:

> Soit "L1" un logiciel de traitement d'images, lorsqu'un autre
logiciel "L2"
a copié une image dans le presse-papier, le menu "Coller" de "L1" qui était
invalide auparavant, devient valide.
Quel est l'évènement qui a déclenché cela ?



Soit WM_DRAWCLIPBOARD si clipboard viewer, soit IsClipboardFormatAvailable()
Avatar
Jean-Claude BELLAMY
Dans le message news:41a2422c$0$7224$ ,
Pierre CHAUVEAU s'est ainsi exprimé:

Bonjour à toutes et à tous,

Soit "L1" un logiciel de traitement d'images, lorsqu'un autre
logiciel "L2" a copié une image dans le presse-papier, le menu
"Coller" de "L1" qui était invalide auparavant, devient valide.

Quel est l'évènement qui a déclenché cela ?



WM_DRAWCLIPBOARD
The WM_DRAWCLIPBOARD message is sent to the first window in the clipboard
viewer chain when the content of the clipboard changes. This enables a
clipboard viewer window to display the new content of the clipboard.

A window receives this message through its WindowProc function.



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *

Avatar
Pierre CHAUVEAU
Merci pour vos réponses

Pierre.

"Pierre CHAUVEAU" a écrit dans le message de
news:41a2422c$0$7224$
Bonjour à toutes et à tous,

Soit "L1" un logiciel de traitement d'images, lorsqu'un autre logiciel


"L2"
a copié une image dans le presse-papier, le menu "Coller" de "L1" qui


était
invalide auparavant, devient valide.

Quel est l'évènement qui a déclenché cela ?

Merci de votre aide.

Pierre.




Avatar
Vincent Burel
"Christian ASTOR" wrote in message
news:41a254d5$0$5992$
Pierre CHAUVEAU wrote:

> Soit "L1" un logiciel de traitement d'images, lorsqu'un autre
logiciel "L2"
> a copié une image dans le presse-papier, le menu "Coller" de "L1" qui


était
> invalide auparavant, devient valide.
> Quel est l'évènement qui a déclenché cela ?

Soit WM_DRAWCLIPBOARD si clipboard viewer, soit


IsClipboardFormatAvailable()

oui enfin, généralement on ne fait pas confiance au MSG broadcast inter app
de Windows... déjà que le Focus d'une Win à L'autre dans une APP c'est
n'importe quoi, alors bon...

Généralement le menu Edit, avant affichage (donc sur un message INIT du Menu
devant être affiché) on mets à jours les MenuItem , ici en fonction de
qu'est ce qu'il y a dans le ClipBoard !? Rien pour nous, alors on Disable le
MenuItem "Paste" , qqc pour nous, alors on active le menuitem "Paste"...

VB
Avatar
Pierre CHAUVEAU
"Vincent Burel" a écrit dans le message de
news:41a2684c$0$29121$

"Christian ASTOR" wrote in message
news:41a254d5$0$5992$
> Pierre CHAUVEAU wrote:
>
> > Soit "L1" un logiciel de traitement d'images, lorsqu'un autre
> logiciel "L2"
> > a copié une image dans le presse-papier, le menu "Coller" de "L1" qui
était
> > invalide auparavant, devient valide.
> > Quel est l'évènement qui a déclenché cela ?
>
> Soit WM_DRAWCLIPBOARD si clipboard viewer, soit
IsClipboardFormatAvailable()

oui enfin, généralement on ne fait pas confiance au MSG broadcast inter


app
de Windows... déjà que le Focus d'une Win à L'autre dans une APP c'est
n'importe quoi, alors bon...

Généralement le menu Edit, avant affichage (donc sur un message INIT du


Menu
devant être affiché) on mets à jours les MenuItem , ici en fonction de
qu'est ce qu'il y a dans le ClipBoard !? Rien pour nous, alors on Disable


le
MenuItem "Paste" , qqc pour nous, alors on active le menuitem "Paste"...

VB




C'est effectivement ce qui me semble être judicieux. Cependant, cela se
traduit par quoi "qqc pour nous" ? J' ai certainement dû mal lire, mais les
seules informations que je trouve à extraire sont celles relatives aux
formats recencés par le presse-papier.

Merci de votre aide.

Pierre.
Avatar
Vincent Burel
"Pierre CHAUVEAU" wrote in message
news:41a2f027$0$3325$
"Vincent Burel" a écrit dans le message de
news:41a2684c$0$29121$
>
> "Christian ASTOR" wrote in message
> news:41a254d5$0$5992$
> > Pierre CHAUVEAU wrote:
> >
> > > Soit "L1" un logiciel de traitement d'images, lorsqu'un autre
> > logiciel "L2"
> > > a copié une image dans le presse-papier, le menu "Coller" de "L1"


qui
> était
> > > invalide auparavant, devient valide.
> > > Quel est l'évènement qui a déclenché cela ?
> >
> > Soit WM_DRAWCLIPBOARD si clipboard viewer, soit
> IsClipboardFormatAvailable()
>
> oui enfin, généralement on ne fait pas confiance au MSG broadcast inter
app
> de Windows... déjà que le Focus d'une Win à L'autre dans une APP c'est
> n'importe quoi, alors bon...
>
> Généralement le menu Edit, avant affichage (donc sur un message INIT du
Menu
> devant être affiché) on mets à jours les MenuItem , ici en fonction de
> qu'est ce qu'il y a dans le ClipBoard !? Rien pour nous, alors on


Disable
le
> MenuItem "Paste" , qqc pour nous, alors on active le menuitem "Paste"...
>
> VB
>

C'est effectivement ce qui me semble être judicieux. Cependant, cela se
traduit par quoi "qqc pour nous" ? J' ai certainement dû mal lire, mais


les
seules informations que je trouve à extraire sont celles relatives aux
formats recencés par le presse-papier.



qqc pour nous ! ca veut dire que dans le presse papier il y a qqc qu'on sait
gérer, donc qu'on sait coller.
Alors comme le dit l'encyclopédie Astor , on utilise d'abord la fonction
IsClipboardFormatAvailable pour déterminer le format primaire de donnée
éventuellement stocké dans le clipboard.

si l'on travaille avec des format propriétaire CF_OWNERDISPLAY alors on se
définit un header généralement, je ne sais pas par exemple avec un GUID ou
une STRING qui sera donc en début de block mémoire dans le clipboard et
qu'on vérifiera pour savoir si vraiment ce qu'il y a dans le clipboard est
pour notre application...

VB
Avatar
castorix
"Vincent Burel" wrote in message news:<41a2684c$0$29121$...

Généralement le menu Edit, avant affichage (donc sur un message INIT du Menu
devant être affiché) on mets à jours les MenuItem , ici en fonction de
qu'est ce qu'il y a dans le ClipBoard !? Rien pour nous, alors on Disable le
MenuItem "Paste" , qqc pour nous, alors on active le menuitem "Paste"...



Oui, c'est le 2ème cas.
Si on prend par ex Paintbrush, il appelle EnableMenuItem() sur
WM_INITMENU en testant IsClipboardFormatAvailable() sur les différents
formats qui l'intéressent (CF_BITMAP, CF_DIB, CF_METAFILEPICT, ...)
Avatar
Pierre CHAUVEAU
"Vincent Burel" a écrit dans le message de
news:41a2fe3f$0$9075$

"Pierre CHAUVEAU" wrote in message
news:41a2f027$0$3325$
> "Vincent Burel" a écrit dans le message


de
> news:41a2684c$0$29121$
> >
> > "Christian ASTOR" wrote in message
> > news:41a254d5$0$5992$
> > > Pierre CHAUVEAU wrote:
> > >
> > > > Soit "L1" un logiciel de traitement d'images, lorsqu'un autre
> > > logiciel "L2"
> > > > a copié une image dans le presse-papier, le menu "Coller" de "L1"
qui
> > était
> > > > invalide auparavant, devient valide.
> > > > Quel est l'évènement qui a déclenché cela ?
> > >
> > > Soit WM_DRAWCLIPBOARD si clipboard viewer, soit
> > IsClipboardFormatAvailable()
> >
> > oui enfin, généralement on ne fait pas confiance au MSG broadcast


inter
> app
> > de Windows... déjà que le Focus d'une Win à L'autre dans une APP c'est
> > n'importe quoi, alors bon...
> >
> > Généralement le menu Edit, avant affichage (donc sur un message INIT


du
> Menu
> > devant être affiché) on mets à jours les MenuItem , ici en fonction de
> > qu'est ce qu'il y a dans le ClipBoard !? Rien pour nous, alors on
Disable
> le
> > MenuItem "Paste" , qqc pour nous, alors on active le menuitem


"Paste"...
> >
> > VB
> >
>
> C'est effectivement ce qui me semble être judicieux. Cependant, cela se
> traduit par quoi "qqc pour nous" ? J' ai certainement dû mal lire, mais
les
> seules informations que je trouve à extraire sont celles relatives aux
> formats recencés par le presse-papier.

qqc pour nous ! ca veut dire que dans le presse papier il y a qqc qu'on


sait
gérer, donc qu'on sait coller.
Alors comme le dit l'encyclopédie Astor , on utilise d'abord la fonction
IsClipboardFormatAvailable pour déterminer le format primaire de donnée
éventuellement stocké dans le clipboard.

si l'on travaille avec des format propriétaire CF_OWNERDISPLAY alors on se
définit un header généralement, je ne sais pas par exemple avec un GUID ou
une STRING qui sera donc en début de block mémoire dans le clipboard et
qu'on vérifiera pour savoir si vraiment ce qu'il y a dans le clipboard est
pour notre application...

VB




Vu,

Ce que je n'avais pas compris c'est que " IsClipboardFormatAvailable "
renvoie une info sue le contenu du presse-papier et non pas une info sur les
types de formats gérés par le presse-papier.

Merci

Pierre.