Onglets

Signaler
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
-
Bonjour,


Je veux récupérer le texte d'un onglet. Quand je met le code ci-dessous le programme plante pourquoi ?



HWND returned = FindWindowEx(parent,NULL,"SysTabControl32","");

if (returned==NULL) return;



TCITEM tie;

ZeroMemory(&tie, sizeof(tie));

char Text[250];

int count, idx;



tie.mask=TCIF_TEXT;

tie.pszText=Text;

tie.cchTextMax=250;

idx=TabCtrl_GetCurSel(returned);

if (idx != -1)

{

TabCtrl_GetItem(returned,idx,&tie);

MessageBox(hwnd,Text,0,0);

}

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com

16 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

Il faut afficher tie.pszText plutot que Text, car le message TCM_GETITEM ne rempli pas forcement ton buffer mais il change la valeur de pszText.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
C'est pas ce que semble dire MSDN, puisqu'il faut spécifier ce champ avant l'appel.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

Dans remarques: "If the TCIF_TEXT flag is set in the
mask member of the TCITEM structure, the control may change the pszText member of the structure to point to the new text instead of filling the buffer with the requested text."
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Effectivement, au temps pour moi
Pour tester, j'essaie de faire ca sur un Onglet qui est dans un autre processus. (Je fais avec l'onglet de "Affichage de Propriétés).
Dans ce cas on n'a pas le droit d'appeler TabCtrl_GetItem?
Mon appel à TabCtrl_GetCurSel marche bien, mais l'appel à TabCtrl_GetItem fait planter mon application, et la fenêtre contenant l'onglet est détruit)
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

Ah oui j'avais pas pensé a ca...

Si le tab se trouve dans un autre processus, on ne peut pas utiliser
directement ces messages puisque les pointeurs &tie, Text et
compagnies ne seront pas valide dans le processus cible. Il faut alors
passer par VirtualAllocEx, ReadProcessMemory..
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ca c'est pour moi, j'imagine que victorcoasne utilise un tab qui est dans son processus. Je trouve ca quand même un peu bizarre ce que dit MDSN: peut être qu'il va remplir le buffer, ou pas...
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,


Non, en effet, le tab n'est pas dans le même processus et je voudrais savoir alors comment utiliser l'allocation virtuelle.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
C'est très bien fait dans ce code:
http://www.cppfrance.com/code.aspx?ID=22940
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Au temps pour moi ou autant pour moi ?

Les 2 se disent, mais j'ai jamais su faire la différence :)

if(!Meilleur("Joky")) return ERREUR;<
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Les deux se disent car ca se prononce pareil, mais le deuxième ne s'écrit pas, la est la différence
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
http://www.langue-fr.net/index/A/au_temps-autant.htm

Il s'écrit mais on privilégie le au temps pour moi
if(!Meilleur("Joky")) return ERREUR;<
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,


On peut pas m'adapter mon code avec une allocation virtuelle SVP ?

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
C'est qui "on"?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Joky, tu as raison mais je ne vais pas te dire la formule ici, car tu n'est pas mon supérieur hiérarchique :)
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,


"On" désigne l'aimable et serviable personne qui voudrait bien le faire.

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com
Messages postés
1100
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
17 octobre 2012
7
Bonjour,


Personne pour m'adapter le code en version alouage virtuel ou pour me montrer comment on fait ?

Merci et bonne prog,
@++

Le créateur du site http://victorlogiciels.com