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

  FORUM HardWare.fr
  Programmation
  C++

  (DotNet) récupérer handle textbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

(DotNet) récupérer handle textbox

n°1345871
stgi02
Posté le 13-04-2006 à 11:38:43  profilanswer
 

bonjour,
je voudrai savoir comment je pourrait récupérer le handle de ma textbox
je prog sur visual studio.net 2003 en c++

mood
Publicité
Posté le 13-04-2006 à 11:38:43  profilanswer
 

n°1345877
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-04-2006 à 11:45:55  profilanswer
 

tu persistes à faire du .NET malgré ce que je t'ai dit dans l'autre topic... :sarcastic:
pour info, TextBox et tous les controles de Winform héritent de Control, qui possède une propriété Handle
faut lire la MSDN un peu... et tu peux récupérer tous les Hwnd que tu veux, tant que t'auras pas compris que ton problème est un mélange de code managé et non managé, tu n'avanceras pas


---------------
J'ai un string dans l'array (Paris Hilton)
n°1345881
_darkalt3_
Proctopathe
Posté le 13-04-2006 à 11:47:52  profilanswer
 

d'autant que le mélange managé / non managé est loin d'etre trivial (par exemple avec le marshaling...)

n°1345896
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-04-2006 à 11:55:57  profilanswer
 

c'est exactement ce que je lui dis sur l'autre topic, mais il persiste...
pour info, le plugin de ma signature utilise un tel mélange (API de Winamp en C oblige), il est codé en C#. voici un exemple de code que j'ai du pondre :

Code :
  1. private void GetTitle()
  2.        {
  3.            extendedFileInfoStruct efi;
  4.            int pos = SendMessage(pluginWindow, WM_WA_IPC, 0, IPC_GETLISTPOS);
  5.            unsafe
  6.            {
  7.                sbyte* fileName = (sbyte*)SendMessage(pluginWindow, WM_WA_IPC, pos, IPC_GETPLAYLISTFILE);
  8.                if (fileName == null)
  9.                    return;
  10.                string theTitre = new string(fileName);
  11.                if ((!(theTitre.Equals(theOldTitre))) || (thePrefs.SigChanged == true) || (winampStopped == true))
  12.                {
  13.                    theOldTitre = theTitre;
  14.                    efi.filename = fileName;
  15.                    efi.retlen = 255;
  16.                    atts = getID3Attributes(&efi);
  17.                    SongChangedEventArgs e = new SongChangedEventArgs(atts);
  18.                    if (SongChanged != null)
  19.                        SongChanged(this, e);
  20.                }
  21.                theTitre = null;
  22.            }
  23.        }
  24.  
  25.        private unsafe NameValueCollection getID3Attributes(extendedFileInfoStruct* efi)
  26.        {
  27.            NameValueCollection coll = new NameValueCollection();
  28.            StringEnumerator attrsEnumerator = attributes.GetEnumerator();
  29.            sbyte* retBuffer = (sbyte*)Marshal.AllocHGlobal(256).ToPointer();
  30.  
  31.            while (attrsEnumerator.MoveNext())
  32.            {
  33.                byte[] tmpMeta = Encoding.ASCII.GetBytes(attrsEnumerator.Current.ToCharArray());
  34.                efi->ret = retBuffer;
  35.                fixed (byte* metadata = &tmpMeta[0])
  36.                    efi->metadata = metadata;
  37.                SendMessage(pluginWindow, WM_WA_IPC, new IntPtr(efi).ToInt32(), IPC_GET_EXTENDED_FILE_INFO);
  38.                string strAttr = new String(retBuffer);
  39.                coll.Add(attrsEnumerator.Current, strAttr);
  40.            }
  41.  
  42.            Marshal.FreeHGlobal((IntPtr)retBuffer);
  43.            return coll;
  44.        }


 
merveilleux non ?


Message édité par Harkonnen le 13-04-2006 à 11:56:25

---------------
J'ai un string dans l'array (Paris Hilton)
n°1345912
stgi02
Posté le 13-04-2006 à 12:06:01  profilanswer
 

salut, au faite je suis débutant pour tout vous dire je suis en stage mais c'est de l' informatique alors que moi je suis en graduat électronique donc je suis débutant dans l'info et je ne comprends pas tjs tout, ménager ou non ménager moi??? mais c'est pas grave
 
je vous explique mon projet :
je dois réaliser un genre d'hyper terminal , pour écrire et recevoir ça fonctionne mais je voudrais récuperer les données reçues pour les envoyer dans ma textbox1.
j' ai un fichier form1.h ou je vais effectuer textBox1->Text = buf ;
 
dans le fichier serial1.cpp
c'est ici que j'effectue la fonction :
BYTE buf [4096];
ReadFile(hComm,&buf , dwtoRead ,&dwRead , &ov); cette fonction fonctionne j'en suis sûr
 
mais je ne vois pas comment je peux passer buf dans le fichier.h pour l'affecté dans la texbox , si j'arrive alors ça sera facile.  
 
j'espère que je me suis bien fais comprendre  
merci bcp de m'aider

n°1345918
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-04-2006 à 12:08:40  profilanswer
 

c'est bien ce que je dis, il a rien compris [:el g]
 
edit: http://forum.hardware.fr/hardwaref [...] m#t1345860


Message édité par Harkonnen le 13-04-2006 à 12:10:26

---------------
J'ai un string dans l'array (Paris Hilton)
n°1345920
_darkalt3_
Proctopathe
Posté le 13-04-2006 à 12:10:27  profilanswer
 

Le plus *facile*, c'est encore d'écrire ta gestion de port série dans une DLL MFC, et de l'encapsuler dans un objet managé.
 
Mais en fait, c'est loin d'etre facile ... tu es prévenu (comprendre: pas à la portée d'un débutant).

n°1345921
_darkalt3_
Proctopathe
Posté le 13-04-2006 à 12:11:08  profilanswer
 

En fait, fait tout en mfc ... La au moins t'as une chance de comprendre ce que tu fais
 
(+1 avec harko quoi)


Message édité par _darkalt3_ le 13-04-2006 à 12:11:41
n°1345922
_darkalt3_
Proctopathe
Posté le 13-04-2006 à 12:12:15  profilanswer
 

En fait, t'es au courant que le port série n'est pas du tout géré par le fw .net ?

n°1345928
stgi02
Posté le 13-04-2006 à 12:15:37  profilanswer
 

mon programme fonctionne avant j'arrivais a écrire et à réceptionner dans la console, mais l'étape suivant est de réception dans la textbox

mood
Publicité
Posté le 13-04-2006 à 12:15:37  profilanswer
 

n°1345932
_darkalt3_
Proctopathe
Posté le 13-04-2006 à 12:18:40  profilanswer
 

console == mfc
textbox == .net
 
compatibilité entre les 2: hasardeuse pour toi
 
Laisse tomber, lis la doc sur les mfc, t'as des genre de textbox aussi.

n°1345933
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-04-2006 à 12:19:51  profilanswer
 

mais sacré nom d'un chien, tu as lu ce que je t'ai marqué dans mes précédentes réponses ???  
tu as fait ton IHM en Winform .NET, qui est à base de code managé, alors que ton code est non managé !!! TextBox.Text attend un type String, alors que tu essaies de lui refourguer un char[] "C-Style".  
donc, et je répete pour la derniere fois, il faut que tu utilises les fonctions de Marshalling pour convertir ton buffer, et ensuite tu pourras le passer à TextBox.Text !


---------------
J'ai un string dans l'array (Paris Hilton)

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

  (DotNet) récupérer handle textbox

 

Sujets relatifs
[php]recuperer le nom d'une variabletextbox
Afficher la cellule dans 1 textbox par intersection ligne & colonneRécupérer valeur bouton radio + lien img
(DotNet c++) SendMessage et WindowProcGetParameter: récupérer plusieurs valeurs venant de la meme variable
récupérer des chiffres dans une expression (vbaexcel)(DotNet c++) handle d'un formulaire
[DELPHI] récupérer les infos d'un ac3. 
Plus de sujets relatifs à : (DotNet) récupérer handle textbox


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