Re: Image (ou petite icone) dans champ de saisie

Posté par Kaer le 9/3/2007 23:36:45
Thank you, c'est bon à savoir et ce truc va m'être utile néanmoins je suis un peu borné et après quelques heures de recherche j'ai reussit à trouver mon bonheur en VB et à convertir le code en Wlangage.

Mon but premier était d'insérer une image dans un champ de saisie sans pour autant que le texte se superpose à mon image dans le champ.

Après donc quelques recherches j'ai réussit à trouver comment insérer une "marge" dans un champ de saisie (cela fonctionne aussi avec les combos)

Voici le petit bout de code :

// CONSTANTES WINDEV, voir dans WDAPI dans l'onglet "constantes" pour avoir les valeurs WINDEV de ces constantes
//
// EC_LEFTMARGIN = &H1 -- marge gauche
// EC_RIGHTMARGIN = &H2 -- marge droite
// EC_USEFONTINFO = &HFFFF& -- Contient les valeurs par defaut des marges (pour les restaurer)
// EM_SETMARGINS = &HD3& -- A passer en param pour modifier les valeurs
// EM_GETMARGINS = &HD4& -- A passer en param pour reprendre les valeurs


// SendMessageA (lhWnd, EM_SETMARGINS, EC_LEFTMARGIN, lMargin)

// lhWnd , Handle du champ.
// EM_SETMARGINS, constante de message windows qui indique que l'on veut modifier la marge du champ.
// EC_LEFTMARGIN, constante windows, marge gauche, on indique que l'on veut modifier la marge gauche.
// lMargin, on passe une valeur de margage en pixel (expl 15)

RetourFonction est un entier // Type C :LRESULT
hWnd est un entier // Type C :HWND
Msg est un entier sans signe // Type C :UINT
wParam est un entier // Type C :WPARAM
lParam est un entier // Type C :LPARAM


// Handle du champ
hWnd = Handle(SAI_MONCHAMP)
// Type du message à envoyer
Msg = 211 // valeur windev de la constante windows
// wparam
wParam = 1 // valeur windev de la constante windows
// lparam
lParam = 20

// c'est parti...
RetourFonction=API("USER32","SendMessageA",hWnd,Msg,wParam,lParam)

Beaucoup de commentaires pour 3 lignes de codes mais c'est pas grave :D.

Voilà j'ai ma marge sur mon champ de texte, je place maintenant mon image tout simplement avec un champ image, ca suffira, j'ajoute quand même un petit :

// a chaque modification de mon champ de saisie (SAI_MONCHAMP)
IMG_MONIMAGE..visible = faux
IMG_MONIMAGE..visible = vrai


... car il ya quelques petits problèmes de rafraichissement quand on entre en saisie dans le champ.

Voilà ce que je voulais vraiment finalement.

Bien cordialement.

Attacher un fichier:



gif  LEFT_MARGE_API.gif (3.41 KB)
2005_45f1e44fa548d.gif 272X89 px

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=17&topic_id=4984&post_id=20585