begin process at 2010 03 21 22:38:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb avec SendMessage()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb avec SendMessage()

mardi 9 août 2005 à 22:43:03 | pb avec SendMessage()

minet03

Hello, voilà mon problème... depuis ma DlgProc() j'envoi un message avec la fonction SendMessage() comme ci :
SendMessage(hWindow,IDC_MESSAGE,(WPARAM)pointeur,O);
où hWindow est le handle (déclaré en global) de la fenêtre parent et pointeur un pointeur que je veux envoyé...
Le prob c'est que la proc de la fenêtre parent ne recoit pas le message.
J'ai essayé avec PostMessage()... idem
J'ai essayé de mettre NULL en premier param.... idem
J'ai placer le message dans la DlgProc et envoi le message avec le premier param de la DlgProc... idem

Je n'ai plus d'idée... aidez-moi svp

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
mardi 9 août 2005 à 23:04:31 | Re : pb avec SendMessage()

BruNews

Administrateur CodeS-SourceS
Si IDC_MESSAGE est un message perso, mets le au moins (WM_USER+1)
dans recevant:
switch(message) {
  case IDC_MESSAGE:
    // ton code ici et devrait aller

par contre en wParam un pointeur, c'est pas courant ton affaire, il pointe sur quoi ??? Il y a séparation total des espaces mémoire, ton pointeur sera invalide si la fenêtre cible est dans un autre processus.

ciao...
BruNews, MVP VC++
mardi 9 août 2005 à 23:07:10 | Re : pb avec SendMessage()

racpp

Administrateur CodeS-SourceS
Salut,
Il faut déclarer  ton message  comme ceci par exemple:
#define  IDC_MESSAGE1  WM_USER
#define  IDC_MESSAGE2  WM_USER+1

Je sais pas si tu l'as fait ou non.


mardi 9 août 2005 à 23:11:49 | Re : pb avec SendMessage()

racpp

Administrateur CodeS-SourceS
BruNews  comme d'habitude, le plus rapide  :)

Il a dit qu'il veut envoyer le message à la fenêtre parente, donc c'est le même processus. Donc le pointeur passera sans problème.


mardi 9 août 2005 à 23:26:13 | Re : pb avec SendMessage()

BruNews

Administrateur CodeS-SourceS
ah oui j'ai sauté le mot parent.

ciao...
BruNews, MVP VC++
mardi 9 août 2005 à 23:39:34 | Re : pb avec SendMessage()

racpp

Administrateur CodeS-SourceS
Pour éviter l'emploi d'une variable globale tu peux faire:
SendMessage(GetParent(hDlg),IDC_MESSAGE,(WPARAM)pointeur,O);
hDlg est le HWND de la boite de dialogue.


mercredi 10 août 2005 à 17:58:50 | Re : pb avec SendMessage()

minet03

merci à tous de prêter attention à mon post.
BruNews ->
   - Comment je fais pour envoyer un pointeur (qui pointe sur une classe) ?
   - Si je fais un autre exe pour lire ce qu'il y a dans la classe comment je fais pour lui envoyer ou pour que l'exe soit lancer dans le même processus ?

Sinon j'ai essayé d'envoyé un message qui fonction mais sans succès, donc j'en déduit que ça ne viens pas du message...

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
mercredi 10 août 2005 à 18:12:37 | Re : pb avec SendMessage()

BruNews

Administrateur CodeS-SourceS
on n'envoie pas de pointeur sur les données d'un processus vers un autre processus, c'est définitif. Un processus vit dans un espace de mémoire virtuelle allouée par le système, ton pointeur arrivant dans l'autre processus viserait l'adresse dans la mémoire du processus cible, serait donc totalement invalide et gros risque de plantage.
Faut copier tes données dans un filemapping et discuter ainsi avec l'autre processus.

Si c'est dans le même processus alors tu passes 'this' de la classe.
Ceci dit je ne suis pas très classieux, alors...

ciao...
BruNews, MVP VC++
mercredi 10 août 2005 à 20:34:09 | Re : pb avec SendMessage()

minet03

juste avant SendMessage(), j'ai fait quelque test.
hDlg est le handle de la boite de dialogue
hWindow est le handle de la fenêtre mère qui affiche la boite de dialogue
hDlg et hWindow ne vallent pas NULL, par contre GetParent(hDlg) == NULL

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
mercredi 10 août 2005 à 20:50:12 | Re : pb avec SendMessage()

BruNews

Administrateur CodeS-SourceS
elle est comment ta ligne DialogBoxParam ???

ciao...
BruNews, MVP VC++

1 2 3

Cette discussion est classée dans : message, sendmessage, pointeur, dlgproc, idem


Répondre à ce message

Sujets en rapport avec ce message

SendMessage vers une fenêtre minimisée [ par Keenes ] Bonjour,Le sujet du message n'étant pas très explicite, voici de quoi il s'agit :Je cherche à réaliser une logiciel de capture d'écran, comme il en ex SendMessage à Dialog [ par vecchio56 ] Salut J'ai un question pour la valeur retournée pas SendMessage quand on l'utilise pour envoyer un message à un Dialog. Voici un exemple: INT_PTR CAL Exception EInvalidPointer [ par eagleseyes ] SalutLors de l'execution d'un programme, je reçois de façon aléatoire l'exception suivante:<img alt="" temp_src="C:\Documents and Settings\npillon\Bur probleme de SendMessage [ par kor6k ] Bonjour,J'ai créé une classe dérivant d'un CButton et dans ma fenêtre principale, je crée une instance de cette nouvelle classe.Je veux pouvoir gérer SendMessage a deux editbox [ par leprov ] salut a tous.j'essaie d'nevoyer a l'affilée de message WM_SETTEXT a deux EditBox distincts, et apparement le premier EditBox recoit bien son message m Erreur de mémoire ? [ par larion ] Bonjour,Je viens de réaliser un projet (~2000 lignes) avec C++Builder permettant de gérer des bureaux virtuels.Ce programme utilise une Dll qui est a forcer un pointeur [ par lamalice83 ] Comment fait-on pour forcer un pointeur à pointer sur une adresse précise?g : char *ptr = 0x03fd; ==> génére une erreurComment faire pour lire l'octe Chapitre IV de M Franck Bauquier [ par Griech ] Objet : programme du chapitre IV, message à l'éxécution :"out of range H:27.5 KHZ V : 44.1 HZ"Bonjour, je travaille avec un compilateur DJGpp vers 3 recuperer les donnees pointer par un pointeur et les enregistrer [ par matge ] BonjourJ utilise la fonction suivante u_int8_t *pointeur=pack->GetPayloadData();J'aimerais enregistere les donnees retournées dans un fichier que j'ai macro et fonction static?? [ par cybermax62 ] je veux faire une macro qui utilise une fonction membre d'une classe.exemple :#define infoLog(message) CLogFile::LogMessage(message,CLogFile::INFO)mai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales