TABSTRIP EN UTILISANT LES OBJETS FORM (VB.NET)

Signaler
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
MdoDev
Messages postés
4
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
6 juillet 2006
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38141-tabstrip-en-utilisant-les-objets-form-vb-net

MdoDev
Messages postés
4
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Call SetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE, GetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE) Or WS_CHILD) ne permet pas de laisser le focus sur la fenêtre parent.

J'ai laissé le code en commentaire pour ceux qui souhaitent essayer.
J'ai cherché à mettre d'autres attributs mais rien à faire.
Je n'ai pas trouvé de solution en surfant :-{
MdoDev
Messages postés
4
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Dès que j'aurai le temps, je vais ajouter ce petit add-on pour le focus.
Je mettrai à disposition les nouvelles sources si ca veut bien fonctionner cette fois !

En ce qui concerne "TabsAssist 3.0 Free", il exite un objet standard vb qui permet déjà de jonglet facilement avec les onglets. Dans les 2 cas, on conserve les FRAMES. Personnellement, je n'aime pas ;-)
cs_derick
Messages postés
41
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
25 août 2007

Salut à tous,

Connaissez-vous "TabsAssist 3.0 Free" ? C'est un complément VB qui permet de faire fonctionner les onglets dans l'éditeur VB comme à l'exécution, et donc de jongler +/- facilement avec les frames [si on décide de conserver cette méthode ;-)]
> livré avec les sources
> http://fred.just.free.fr/francais/index.html

Bonne progr,
Derick
cs_FraGag
Messages postés
81
Date d'inscription
jeudi 19 février 2004
Statut
Membre
Dernière intervention
18 avril 2008

Je viens de me souvenir qu'il faut ajouter le style WS_CHILD (&H40000000) pour que les forms ne volent pas le focus au form parent. Présentement, quand un form est sélectionné, le form parent est désélectionné, mais avec SetWindowLong, avec nIndex = GWL_STYLE (-16), le form parent gardera le focus également (comme si c'était n'importe quel contrôle qu'on dépose sur un form). Il est important de conserver l'ancien style (à récupérer avec GetWindowLong) et de mélanger WS_CHILD avec l'opérateur Or (on l'enlèverait avec And Not). Donc, la ligne à ajouter (je la mettrais juste après l'appel à SetParent) serait :

Call SetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE, GetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE) Or WS_CHILD)

Il ne reste qu'à déclarer les APIs et les constantes, dont j'ai mis les valeurs entre parenthèses. Maintenant, on ne devrait y voir que du feu !