Utilisation de l'api getscrollinfo [Résolu]

Signaler
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010
-
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010
-
Salut
j'éssaie d'utiliser cet api dans un prog ou je dois savoir la longueur du texte d'un rtb, voila le code mais ca marche po



private
struct
ScrollInfoStruct
{

public
int cbSize;

public
int fMask;

public
int nMin;

public
int nMax;

public
int nPage;

public
int nPos;

ublic
int nTrackPos;
}


[
DllImport(
"user32.dll", SetLastError =
true)]

private
static
extern
int GetScrollInfo(

IntPtr hWnd,
int n,
ref
ScrollInfoStruct lpScrollInfo);

private
void button1_Click(
object sender,
EventArgs e)
{

ScrollInfoStruct si =
new
ScrollInfoStruct();
GetScrollInfo(
rtb.Handle, 0x1,
ref si);

MessageBox.Show(si.nPos.ToString());
}

j'ai essayé ttes les si. , mais elle donne tous zéro, dernière chose , les scrolls barre sont activé ( Both ).

Merci

YaoYao !!
http://csharp.over-blog.com

10 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Rien de bien sorcier, tu cherche le fichier dans les dossiers du sdk
.net, tu l'ouvres, tu cherches la valeur que tu souhaites, et tu
l'integres dans ton programme



private const int tavaleur = ... ;


A la limite, va chercher les valeurs dans ce tutorial


Mx
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
33
la longueur ? où la hauteur ?

Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
</FO< body>
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Ca ne changera pas grand chose au comportement par defaut mais tu devrais rajouter l'attribut [ StructLayout( LayoutKind.Sequential ) ] a ta structure.. Et puis oui faut remplir les champs size, mask ect..
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

la hauteur je veux dire, mais Comment les remplir?? t'as une idée Lutinore??

MErci
YaoYao !!
http://csharp.over-blog.com
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Le champ "Size" se remplit avec la fonction Marchal.SizeOf( ) pour le reste la documentation te le dira mieux que moi.. Tu trouveras la valeur des flags du champ "Mask" dans le fichier "Winuser.h"
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Comment ca winuser.h ?? ya les header dans le c#??
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Tu travailles avec PInvoke ( DllImport ect.. ) faut donc pas s'etonner de trouver les valeurs dans les fichiers headers du C.
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Exact, tu as besoins des valeurs qui se trouvent dans le header winuser.h.

Mais tu n'utilises en aucun cas winuser.h dans ton projet ;)

Mx
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Mais je n'ai jamais utilisé le C, et je l'aime même po, alors que même si je prog en c# je dois connaitre le C, C nul comme programmeurs ces makrozovtiens, ben qu'ils portent tt en .net .
SVP vous pouvez me dire où se trouve ce header?? et quelles valeurs je v extraire de lui??
Merci
Messages postés
805
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
30 octobre 2010

Mx