CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] boucle de messages/presse papier

dnob700
dnob700
Niveau 10
15 octobre 2004 à 23:08:12

je me demandais s´il était possible de traiter les messages en C++ sans passer par une fenêtre

http://walljv.free.fr/index.php?to=view&id=44
dans le genre de ce que fait ce code.

une autre question est le fonctionnement du message WM_CHANGECBCHAIN :
il est envoyé à une fenêtre qui s´est enregistré elle même comme clipboard viewer.

ça veut dire que la chaine de fenêtre qui sont des clipboardviewer à changé.

ces paramètre sont le hWnd de la fenêtre qui disparait et le hWnd de la prochaine fenêtre dans la file.

a ce moment là, la fenêtre doit comparer le handle de la fenêtre qui disparait avec le handle qu´elle avait en mémoire de la fenêtre qui la suis dans la file.

si c´est le même, pas de problème : le deuxième paramètre indique à la fenêtre la nouvelle fenêtre qui la suis dans la file, et il suffit de mettre à jour la variable.

Là où ça se complique, c´est quand la fenêtre suivante n´est pas celle qui est détruite.
dans ce cas là, il faut faire un sendmessage pour que l´info circule.
le premier paramètre, celui à qui le message est envoyé est facile, c´est la variable que j´avais déjà, où celle qui m´est passé en argument de WM_CHANGECBCHAIN qui m´indique la fenêtre suivante à qui je doit envoyer le message.
ensuite, je donne le message, puis le nom de la fenêtre qui disparait, c´est encore facile, parce que je viens de le recevoir.

Mais mon problème est pour le dernier paramètre : je doit donner à la fenêtre qui me suis le handle de la fenêtre qui la suis elle dans la file des fenêtre clipboardviewer.

Et je n´ai pas la moindre idée de comment faire pour récupérer cette info.

si qqn à suivi jusqu´ici, je le remercie déjà
et je vous remercie encore plus si qqn à une idée de solution à mon problème.

dnob700
dnob700
Niveau 10
15 octobre 2004 à 23:38:01

pour info, j´utilise du pur win32, mais j´ai regardé dans la doc de MFC et le problème est le même, en tout cas en apparence.

dnob700
dnob700
Niveau 10
15 octobre 2004 à 23:46:23

bah, je viens de comprendre...

j´avais mal compris le texte de la MSDN, en fait le dernier paramètre n´est pas le handle de la fenêtre qui suit la mienne, mais de la fenêtre qui suit celle qui est détruite.
la fenêtre suivant la mienne ( dont j´ais le handle) a elle même le handle de sa suivante ( ça me fait pensé à l´axiomatique de Peanno).

merci à ceux qui auront lu le message du haut.

je viens par là de faire marcher parfaitement ma première vrai application windows avec gestion des messages et tout et tout ( bon, il n´y a pas d´interface graphique, mais c´était voulu).
Et Kelios, tu vois que ça peut servir les ClipBoardViewer.

Kelios
Kelios
Niveau 8
16 octobre 2004 à 01:10:40

Meuh oui dnob, si tu le dis :sarcastic:

Kelios
---------

dnob700
dnob700
Niveau 10
16 octobre 2004 à 21:18:13

y a t il un moyen de savoir si un pointeur aloué avec new a bien subi un delete.

car un ligne comme cela dans mon programme :
if ( Sortie!=NULL) delete[] Sortie;
provoque inmanquablement un plantage.
je suppose que ça ne devrai pas arriver mais peut-être que je me trompe dans la méthode.

MathieuN7
MathieuN7
Niveau 10
16 octobre 2004 à 23:23:58

ben si t´as fait un delete sur un new c bon, pkoi tu vx vérifier? :doute:

Kelios
Kelios
Niveau 8
17 octobre 2004 à 00:08:50

Parce que c´est pas sur que cette variable serait allouée par exemple. Hors si elle est pas allouée, ben essayer de désallouer un truc pas alloué...

Normallement alors on se fait un truc:
si elle vaut NULL c´est qu´elle est pas allouée.

Ton problème est probablement là:
ptêt as-tu oublié d´initialiser à NULL, et vu qu´elle a pas été touchée elle se retrouve avec un merdier...
Ou encore, elle a été allouée une première fois, désallouée, et là, bug, une exception disons, tu veux tout nettoyer propre avant de quitter, mais vu que rien n´indique quand ça s´est planté, tu dois vérifier ça, essayer de le désallouer.
Hors un delete[] ne mets pas la variale nécessairement à NULL normallement. Et vu que tu aurais oublié de explicitement faire Sortie=NULL...

Ce genre de trucs quoi :)

Vérifie pour ça, et débugge surtout, ça devrait faire un mouvement d´élévation verticale aux organes visuels!

Kelios
---------

dnob700
dnob700
Niveau 10
17 octobre 2004 à 11:38:46

ah merci,

effectivement ça ne se produisait qu´au deuxième appel de la fonction et c´est un truc qui augmentait mon trouble.

bon, bah je la mettrai à null à l´avenir.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment