TOUTES LES BOITES DE DIALOGUES CONNUES (DANS WINDOWS) PAR LES APIS DOCUMENTÉES O

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 - 2 sept. 2003 à 20:21
Galactus13 Messages postés 335 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 août 2023 - 16 nov. 2009 à 21:07
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/8425-toutes-les-boites-de-dialogues-connues-dans-windows-par-les-apis-documentees-ou-non-documentees

Galactus13 Messages postés 335 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 août 2023 1
16 nov. 2009 à 21:07
Joli! sa en fait des boites tout sa !
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
16 mars 2006 à 16:45
salut,

tu double-cliques (dans VB) sur le bouton qui affiche la boite de dialogue que tu veux...tu trouves le nom de la classe correspondante (derrière le mot New), tu copies le fichier .cls du même nom dans le dossier de ton appli, tu l'inclus et tu regardes dans le code du bouton pour voir les propriétés à initialiser...dans ton appli tu dois avoir à peu près le même code que dans le bouton qui affiche la boite dans mon code...

ShareVB
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
24 mai 2005 à 17:39
cs_Danyz Messages postés 98 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 31 octobre 2006
24 mai 2005 à 13:07
Philippe734 , je trouve pas cet ocx.... :(

il est sur vbfrance ?
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
24 mai 2005 à 09:58
salut,

il y a bien un membre pidlRoot dans la structure BROWSEINFO pour ShBrowseForFolder mais si on l'utilise ca n'affiche que les sous-dossiers...

C'est vrai que ShBrowseForFolder est limitée...

ShareVB
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
23 mai 2005 à 23:51
ce code est limité, si tu veux du flexible alors utilise l'ocx lynx arbre qui fait pareil mais en grave mieux.
:)
cs_Danyz Messages postés 98 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 31 octobre 2006
23 mai 2005 à 20:21
Je cherche une solution pour pouvoir choisir le repertoire per défaut du BrowseDialog , quelqu'un à une idée ?

Merci
cs_Danyz Messages postés 98 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 31 octobre 2006
4 sept. 2004 à 17:37
Superbe !

Merci beaucoup , je cherchais la boite de dialogue pour selectionner un dossier ;) (BrowseDialog)

9/10 ;)
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
19 juin 2004 à 10:59
excellent ! je suis content, j'ai trouvé ce que je voulais, merci !

il me semble qu'il y a un souci avec la boite ouvrir, à la place de :

If IsWindowsNT Then
Conv = vbUnicode
Else
Conv = 0
End If
Buff = Space(255)
If SHGetFileNameFromBrowse(mvarhWnd, StrPtr(Buff), 255&, mvarInitDir, ByVal vbNullString, mvarFilter, mvarTitle) Then
ShowOpen = True
Else
ShowOpen = False
End If

il faudrai mettre ceci :

Dim sSave As String
sSave = Space(255)
'If we're on WinNT, call the unicode version of the function
If IsWinNT Then
GetFileNameFromBrowseW Me.hWnd, StrPtr(sSave), 255, StrPtr("c:"), StrPtr("txt"), StrPtr("Text files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All files (*.*)" + Chr$(0) + "*.*" + Chr$(0)), StrPtr("The Title")
'If we're not on WinNT, call the ANSI version of the function
Else
GetFileNameFromBrowseA Me.hWnd, sSave, 255, "c:", "txt", "Text files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All files (*.*)" + Chr$(0) + "*.*" + Chr$(0), "The Title"
End If
'Show the result
MsgBox sSave
End Sub
Private Function IsWinNT() As Boolean
Dim myOS As OSVERSIONINFO
myOS.dwOSVersionInfoSize = Len(myOS)
GetVersionEx myOS
IsWinNT (myOS.dwPlatformId VER_PLATFORM_WIN32_NT)
End Function

perso j'avais un souci sur le filtre de la boite et sur le rep par défaut de l'ouverture. j'ai trouvé cette réponse sur allapi.net
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
7 sept. 2003 à 11:35
dans MSDN il est dit que OpenPreview et SavePreview n'affichent d'apercu que pour les fichiers AVI... donc pour les images il faut utiliser une autre méthode pour injecter notre apercu dans la boite de dialogue. Pour cela il faut utiliser le membre lpfnHook pour spécifier une callback afin de pouvoir insérer notre picturebox et gérer l'affichage de l'image suivant le fichier... cela viendra peut etre dans une autre source... cela existe peut etre deja sur le site...
fluminis Messages postés 73 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 20 juin 2005
6 sept. 2003 à 22:57
bien cette source je trouve d'un coup pleins de trucs que je cherchais.

petite question : la boite de dialogue ouvrir avec apercu n'affiche que les appercu des avi ? et pour les images fo faire comment pour que ca marche ?
J'ai rajouté "image (*.jpg)" + chr$(0) + "*.jpg" mais ca marche pos. Est ce normal ?
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
2 sept. 2003 à 20:22
J'oubliais...

Je n'ai pas tout vérifié mais cela semble tourner correctement sous Win98SE
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
2 sept. 2003 à 20:21
Bonne idée mais dommage que le code soit indenté de manière inégale, que les noms de boutons soient peu explicites et que les commentaires n'aient pas traduits...

Pour les débutants, il aurait peut-être été préférable de créer autant de modules qu'il y a de bouton afin de bien montrer quelles sont les API (fonctions et constantes) qui rentrent en ligne de compte pour tel ou tel usage. C'est du boulot, c'est aussi déclarer plusieurs fois la même API, mais didactiquement parlant, ça me paraît plus parlant.

9/10 pour la recherche des API
6/10 pour l'indentation et la traduction manquante
8/10 pour l'idée de la ListBox qui recueille les infos
=
7.5 allez je met 8
Rejoignez-nous