IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

remplir un winform listview depuis du code c++ non manag�


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut remplir un winform listview depuis du code c++ non manag�
    Bonjour.

    D�butant dans les winforms, je m'interroge sur les limites du mixage code manag�/non manag� en C++.

    L'int�r�t des winforms, c'est de d�velopper des interfaces graphiques tr�s rapidement, et l'int�r�t de mixer ce code avec du C++ non manag�, c'est de r�utiliser des composants tout fait et de continuer � d�velopper dans le langage que je ma�trise le mieux.


    J'ai donc cr�� un winform basique avec une listview.

    Ensuite, j'ai une classe C++ non manag�e, donc compil�e avec les :

    #pragma unmanaged et #pragma managed.



    Cette classe ex�cute un thread qui devra remplir la winform listview � intervalles r�guliers.
    (C'est la winform qui instanciera la classe C++ non manag�e).

    Est-ce qu'il y a vraiment moyen de r�aliser ceci.

    Il est par exemple impossible de passer en param�tre d'une m�thode de cette classe, une r�f�rence sur la listview (� cause des pragmas ...).

    Merci pour toutes informations.

  2. #2
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut
    Re.

    Une id�e comme �a:

    La classe compil�e en natif pourrait utiliser PostMessage(...); afin d'avertir la fen�tre principale de l'application que la listview doit �tre updater.

    Il sera alors facile de remplir la listview en interrogeant la classe non manag�e et en "marshallant" les cha�nes de caract�res.

    Seul souci, pour l'instant, c'est que dans "events handlers", on ne trouve que des �venements li�s au clic de souris, resize de la fen�tre, etc... Quelle est la m�thode pour intercepter des messages de type WM_USER (message d�finit par l'utilisateur).


    (je viens de trouver ceci : http://msdn2.microsoft.com/fr-fr/lib...oc(vs.80).aspx )

    Cette m�thode ci-dessus fonctionne pour moi. Juste que pour retrouver la fen�tre depuis le code non manag�, un FindWindow ne marche pas, j'ai utilis� EnumWindows. (je n'ai pas non plus trouver comment passer le handle de la fen�tre manag�e � la classe non manag�e, d'ailleurs je ne suis m�me pas sur d'avoir trouver le handle tout cours : System::Windows::Forms::handle ???).

  3. #3
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    c'est r�solu ou pas ? sous un syst�me comme xp, l'utilisation des handles peut prendre tout son sens, et les messages en winforms fonctionnent comme avec l'api win32
    sous vista, les handles n'ont plus d'avenir.

    Pour r�cuperer le handle de ta form, il faut utiliser l'objet instanci� et r�cuperer sa propri�t� Handle

  4. #4
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut
    Oui c'est r�solu, parce que j'utilise "PostMessage" en trouvant le handle avec "EnumWindows", j'ai juste trouver une solution de contournement.

    Mais il aurait �t� int�ressant de savoir si je pouvais passer le handle de la form � la classe non manag�e (en esp�rant bien s�r que la valeur de ce handle ne change pas). J'avoue ne pas savoir comment faire: si quelqu'un a une id�e, je prends, sinon ce n'est pas primordial.

  5. #5
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    tu peux de la facon dont j'ai d�crit, et en marshallant l'intptr en handle

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Winform c# dans un programme C++ non manag�
    Par bdurtaut dans le forum C++/CLI
    R�ponses: 3
    Dernier message: 05/11/2007, 10h10
  2. remplir image.picture depuis le code
    Par jadey dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 10/08/2006, 01h07
  3. [C#] Simuler clic depuis du code
    Par Trollusc@ius dans le forum ASP.NET
    R�ponses: 13
    Dernier message: 16/08/2005, 10h43
  4. [JS] Appeler du code C# depuis du code JS
    Par DontNet dans le forum ASP.NET
    R�ponses: 3
    Dernier message: 05/05/2005, 19h00
  5. R�ponses: 4
    Dernier message: 25/01/2005, 22h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo