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 :

fixer objet dans un listbox (LB_SETITEMDATA)


Sujet :

C++/CLI

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 915
    Points : 85
    Points
    85
    Par défaut fixer objet dans un listbox (LB_SETITEMDATA)
    Bonjour,

    Comment associer un objet a un item d'un listbox ?
    C NET ne sais pas faire.


    Donc comment convertir une class C NET en LPARAM ?
    Comment convertir un objet IntPtr de listbox::Handle en HWND ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public: void rafraichir()
    {
    	int len=lescells.Count;
    	listsubject->Items->Clear();
    	listvalue->Items->Clear();
    	for (int i = 0 ; i < len;i++)
    	{
    		moi::TCell ^ c = (moi::TCell ^)lescells[i];
    		//on cherche son sujet
    		//String ^ subj=c->groupe.ToString()":"+c->subject.ToString();
    		String ^subj=eclstr(c->groupe,c->subject);
    		int in=listsubject->Items->Add(subj);
    		//listsubject->
    		//listsubject->SetItemCore(in,listsubject);
    		IntPtr h=listsubject->Handle;
    		SendMessage(h.ToInt64(),LB_SETITEMDATA,in,(LPARAM)c);
     
     
    		if (c->type==typebool)
    			listvalue->Items->Add((int)c->valuebool);
    		else
    		if (c->type==typeint)
    			listvalue->Items->Add(c->valueint);
    		else
    		if (c->type==typestr)
    			listvalue->Items->Add(c->valuestr);
    		else
    			listvalue->Items->Add("Unkown "+c->type.ToString());
    		//listsubject->Items->Add
     
    		//
    	}
    }
    Merci beaucoup pour votre aide afin de trouver une solution

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 915
    Points : 85
    Points
    85
    Par défaut
    Je vais me débrouiller , mais je passe par le ANSI ,
    car impossible d'associer des pointer à des items.

    Pour info :
    Pour extraire le HWND d'un listbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    LRESULT (_stdcall *_mySendMessage)(HWND hWnd, int wMsg, WPARAM wParam, LPARAM lParam);
    		HMODULE hm=GetModuleHandle(L"USER32.DLL");
    		_mySendMessage=(int (__stdcall *)(LRESULT,int,WPARAM,LPARAM))GetProcAddress(hm,"SendMessageW");
    IntPtr h=listsubject->Handle;
    HWND hWnd=(HWND)h.ToInt64();
    Pour pouvoir fixer un item object , reste à utiliser le sendmessage LB_SETITEMDATA

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/06/2015, 15h20
  2. chargement et récupération d'objets dans un listbox
    Par splinternabs dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 29/11/2012, 10h43
  3. recuperer un objet dans une listbox
    Par olibara dans le forum ASP.NET
    Réponses: 6
    Dernier message: 06/01/2010, 18h29
  4. fixer un objet dans une scène en rotation
    Par amine84 dans le forum 3D
    Réponses: 1
    Dernier message: 30/08/2009, 04h39
  5. Fixer colonnes dans une listbox
    Par emeraudes dans le forum IHM
    Réponses: 35
    Dernier message: 12/06/2006, 15h49

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