Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1279 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  blem chelou avec SendMessage MFC

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

blem chelou avec SendMessage MFC

n°226032
polyacetal
I was here
Posté le 10-10-2002 à 09:59:49  profilanswer
 

hello,
je pense que ce pb s'adresse aux vieux routard des MFC;
voila:
je programme un editeur de texe sous BC5, en utilisant directement des "SendMessage".
pour obtenir des infos sur un "edit control" (doc borland)
ma requete est "SendMessage(Handle,EM_GETLINE,ligne,chaine)
je recupere ainsi dans "chaine" une ligne de texte.
cela marche très bien et est beaucoup plus rapide que "TRichedit"
 
mais cette commande me retourne une chaine vide après ouverture d'une fenêtre openGL dans mon programme.
Il s'agit d'un petit moteur graphique "fait maison" appliqué sur une fiche de borland.
même après fermeture de cette fenêtre, les messages "EM_GETLINE"
ne fonctionnent plus que très rarement et me retourne une chaine vide la plupart du temps. (le coté sporadique du bug est assez bizarre...)
cela vient peut-etre du getDC effectuer pour ma fenêtre openGL...
en fait je n'en sait rien du tout.
 
merci de votre aide.

mood
Publicité
Posté le 10-10-2002 à 09:59:49  profilanswer
 

n°226230
Carbon_14
Posté le 10-10-2002 à 15:43:04  profilanswer
 

A tout hasard, le Handle, il est bien tj obtenu de la même façon ? Il n'est pas gardé sous le coude ? Des fois qu'il change en route (juste par précaution).
 
Y a peut-être un écrasement de mémoire qq part, qui apparaît alors.
 
Après GetDC(), y a bien ReleaseDC() quand le hDC ne sert plus ?

n°226244
polyacetal
I was here
Posté le 10-10-2002 à 16:15:45  profilanswer
 

merci de ton aide,
le Handle, comme je suis dans une classe dérivée de TForm (la fenetre classique sous borland), j'utilise this->Handle pour faire mes SendMessage dont ca devrait être bon.
le HDC est "releaser" dans le destructeur de ma fenetre opengl.
meme quand je referme cette fenetre, les SendMessage "EX_GETLINE"
ne fonctionne toujours pas (sauf un coup sur 100 :-( ).
 
sous borland : Lines->String[x] sur une TRichedit fonctionne par contre. c'est trop bizarre.

n°226254
HelloWorld
Salut tout le monde!
Posté le 10-10-2002 à 16:24:36  profilanswer
 

Au fait, ce n'est pas de la prog MFC, mais de la prog Win32 (MFC c'est un ensemble de classes by MS au meme titre que la librairie VCL de chez Borland que tu utilises)
 
http://msdn.microsoft.com/library/ [...] etline.asp
 

Citation :

Pointer to the buffer that receives a copy of the line. Before sending the message, set the first word of this buffer to the size, in TCHARs, of the buffer. For ANSI text, this is the number of bytes; for Unicode text, this is the number of characters. The size in the first word is overwritten by the copied line.


 
Tu as initialise le 1° word de ligne avant de passer en parametre ?
Si celui ci vaut 0, je dirais que c'est normal que rien ne soit renvoyé.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°226310
polyacetal
I was here
Posté le 10-10-2002 à 17:31:57  profilanswer
 

ok, là helloword tu marques un point.
mais je n'est pas vu ta citation dans ma doc MFC de borland,
je savais juste que la commande ecrivait la taille de la chaine ecrite mais pas que je devait l'ecrire.
d'ailleur je ne l'ai jammais fait et ca marchait très bien comme ca !! ;-)
je faisait mon allocation comme un bête tableau:
char * chaine = new char[X];
mais je vais faire  ce que dit ta citation (merci pour le lien)
heuuu...
 
 
"set the first word of this buffer to the size, in TCHARs, of the buffer"
 
comment on fait ca proprement deja ?
merci.
 
 
ps:
j'ai dit une bêtise c'est bien ma classe dérivée de trichedit où je récupère le Handle, (merci pour la précision).

n°226358
HelloWorld
Salut tout le monde!
Posté le 10-10-2002 à 19:42:44  profilanswer
 

Un truc du genre :
((LPWORD)liste)[0] = taille;


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  blem chelou avec SendMessage MFC

 

Sujets relatifs
[MFC] comment ouvrir une base access 2000 ?[MFC] Utilisation de la touche TAB dans un RichEdit
[VC++ 6] Onglets en MFC[MFC] Cases (etc...) activés par défaut
[C, C++] StatusBar, SendMessage et SB_GETTEXTEst il honteux pour un programmeur d'utiliser les MFC de VC++ ?
[VC++, MFC] Comment deriver une classe a partir de sa propre classe?MFC: cliquer un bouton pour changer l'image en fond de dialogbox
[VC++ et MFC] Problème de couleur de fond editbox (avec la source)[C++/MFC] Mouaaaaaaahahahaha
Plus de sujets relatifs à : blem chelou avec SendMessage MFC


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR