SetDlgItemText , editbox et selection [Résolu]

Signaler
Messages postés
7
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
15 septembre 2006
-
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011
-
Salut

J'ai un petit problème avec une editbox rebelle :

En fait au démarrage de mon application (pure Win32), je fais un SetDlgItemText sur une editbox (ma dialog et mes contrôles sont dans les ressources), mais le problème est que le texte est sélectionné (surbrillance bleue).
J'ai le code suivant :

 case WM_INITDIALOG:
        ...
        blabla
        ....
        SetDlgItemText(Dlg,IDC_EDIT1,"SALUTE");
        return TRUE;

Comment faire pour que le texte ne soit pas surligné en bleu, y a une API pour ça?

11 réponses

Messages postés
7
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
15 septembre 2006

Merci de vos conseils, j'ai trouvé la soluce en enlevant la propriété TAB_STOP à mes contrôles editbox.

merci encore
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Envoyer le message EM_SETSEL
Cela dit le comportement que tu décris m'étonne un peu

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
C'est normal, le texte est dedans avant affichage fenêtre donc focus arrive sur edit car doit être le prmier dans l'ordre des tabulations.

ciao...
BruNews, MVP VC++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
S'il retourne FALSE à WM_INITDIALOG ça ne règle pas le problème?

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
On devrait toujours retourner 1 pour placer correctement le focus.

ciao...
BruNews, MVP VC++
Messages postés
7
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
15 septembre 2006

J'ai essayé de changer le focus (sur un 2ème editbox vide) juste après :

        SetDlgItemText(Dlg,IDC_EDIT1,"Wawaron");
        SetFocus(GetDlgItem(Dlg,IDC_EDIT2));

Mais celà ne règle pas le problème!
Comment puis je faire avec les tabulations ? c'est avec TAB_STOP?
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 quand même pratique d'avoir la propriété WS_TABSTOP...
Pourquoi ne pas juste changer l'ordre des contrôles?

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
case WM_INITDIALOG:
 ....
 ....
 ShowWindow(hdlg, SW_SHOW);
 SetDlgItemText(...);
 return TRUE;

et comme dit vecchio, laisse les tabulations à tes textbox.

ciao...
BruNews, MVP VC++
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

Fait plutot SetWindowText(GetDlgItem(DLG,ITEM),"TEXTE");
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Je pense que c'est pareil, sauf que tu fais deux appels pour le prix d'un

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

j'ai u des probleme avec SetDlgItemText j'utilise les deux autre fonction sa marche beaucoup mieux