Affichage pour CommonDialog [Résolu]

Menerlach 57 Messages postés dimanche 2 décembre 2012Date d'inscription 1 juin 2015 Dernière intervention - 30 mai 2015 à 13:02 - Dernière réponse : Menerlach 57 Messages postés dimanche 2 décembre 2012Date d'inscription 1 juin 2015 Dernière intervention
- 1 juin 2015 à 15:18
Bonjour,

Quelqu'un sait-il comment prédéfinir l'affichage (Très grandes icônes, Grandes icônes, Icônes moyennes, Petites icônes, Liste, Détail) quand on utilise CommonDialog en mode ShowOpen ?
Afficher la suite 

Votre réponse

9 réponses

NHenry 14250 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 10 août 2018 Dernière intervention - 30 mai 2015 à 13:23
0
Merci
Je ne pense pas que cela soit possible, en quelle version de VB tu es ?
Commenter la réponse de NHenry
Menerlach 57 Messages postés dimanche 2 décembre 2012Date d'inscription 1 juin 2015 Dernière intervention - 30 mai 2015 à 14:22
0
Merci
Merci pour la réponse

C'est en VB6 mais s'il y a un moyen on devrait pouvoir s'en servir dans toutes les versions.
Commenter la réponse de Menerlach
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 30/05/2015 à 16:59
0
Merci
Bonjour, qu'il s'agisse des paramètres du bureau, des fenêtres actives, des boîtes de dialogues, etc ... ils dépendent uniquement des valeurs données aux réglages avancés des paramètres d'affichage de Windows).
On peut modifier ces paramètres manuellement. On peut également le faire par utilisation de la fonction SystemParametersInfo de la librairie user32 de l'API de Windows.
Mais attention :
1) on touche-là à la configuration générale de Windows et pas uniquement à une application !
2) on ne fait jamais cela sur la machine d'un utilisateur sur laquelle on installe une appli (je fusillerais personnellement celui qui me ferait un coup pareil)
3) s'il s'agit de ta propre machine, autant le faire manuellement depuis le panneau de configuration. En observant que Windows lui-même mettra un certain temps (entre 5 et 30 secondes selon les paramètres modifiés) pour prendre en compte la nouvelle configuration.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
Menerlach 57 Messages postés dimanche 2 décembre 2012Date d'inscription 1 juin 2015 Dernière intervention - 30 mai 2015 à 22:44
0
Merci
Oui mais le problème avec l'affichage de CommonDialog ShowOpen c'est que l'on a (aléatoirement ?) de temps en temps Grandes icones ou Liste ou autre, ça dépend peut-être de ce qui avait été choisi la dernière fois, encore que, mais cela semble imprédictible sur les dossiers qui n'ont jamais été ouverts, ça serait intéressant de pouvoir uniformiser tout ça mais évidemment dans le cadre d'exécution du programme, pas pour le fonctionnement général.
Commenter la réponse de Menerlach
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 31/05/2015 à 00:32
0
Merci
Ces paramètres, je le répète, ne dépendent que de la configuration de l'affichage décidé sur une machine. Pas d'aléas, dans cette affaire (aucun).
Et ces paramètres, je le répète, concernent l'ensemble et non une application. Je ne vois donc pas ce que tu veux dire.

Quel est ton OS ? (quelle version de Windows ?)
Ce qui m'intrigue en te relisant, c'est que tu parles de listes, de détails, ... qui n'ont rien à voir avec la taille des icônes et qui sont des options d'affichage de l'explorateur, options qui ne sont pas reprises par l'affichage de CommonDialog.showopen de VB chez moi (avec XP)

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 31 mai 2015 à 00:49
0
Merci
Je crois commencer à deviner que tu as utilisé la propriété flags du contrôle CommonDialog.
Si tu lui a donné une valeur liant son mode d'affichage à celui de l'explorateur, il obéit alors.
Et tu n'y pourrais rien car ce ne serait pas sur le contrôle, qu'il te faudrait agir, mais sur l'explorateur lui-même.
Si tu veux éviter ce genre de "liaison", mets donc la propriété flags de ce contrôle CommonDialog à 0.
Tu ne saurais avoir le beurre (paramètres d'affichages identiques à ceux définis pour l'explorateur) et l'argent du beurre (avoir des paramètres uniformisés, donc non identiques à ceux définis pour l'explorateur)
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 31/05/2015 à 07:30
0
Merci
Ah ! Je vois maintenant, de bon matin, de quoi tu veux parler : de l'utilisation faite par l'utilisateur de l'icône des paramètres d'affichages (je n'avais pas compris cela ... et pensais que tu voulais parler des éléments de la boîte elle-même)
Je ne vois en effet pas comment intervenir sur le code (code interne du contrôle CommonDialog) qui régit l'utilisation de cette icône.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 31/05/2015 à 11:09
0
Merci
J'ai trouvé ceci, que je ne te recommande surtout pas, en cherchant sur la toile :
http://www.vbaccelerator.com/home/VB/Code/Libraries/Common_Dialogs/Common_Dialog_Direct/bugTrak1419-6.asp
le code en question (qui utilise un module de classe) :
- agit, par la fonction SendMessage de l'Api de Windows, sur le choix fait dans le menu déroulant de l'icône d'affichage (il impose celui que l'on détermine dans l'énumération ViewStyles)
- pour y parvenir, il énumère toutes les fenêtres en cours pour trouver le handle adéquat : le hwnd de la fenêtre à laquelle envoyer le message (hwnd = GetParent(DLG) dans son code)
J'ai décrit l'essentiel de ce code. Tu verras tout le reste en l'analysant.

Le gros hic de cette méthode : elle nécessite l'utilisation d'un timer tournant en permanence, seule manière de déterminer si la fenêtre en cause a été ouverte (attention : il s'agit non de celle du Commondialog, mais de celle de choix du mode d'affichage).

Tout cela me parait bien cher payer pour un faux confort très relatif.
Si tel n'avait pas été le cas, je me serais creusé un peu les méninges pour tenter d'y parvenir sans ce timer. Mais là ... non !
Je te laisse donc ce "plaisir".

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
Menerlach 57 Messages postés dimanche 2 décembre 2012Date d'inscription 1 juin 2015 Dernière intervention - 1 juin 2015 à 15:18
0
Merci
Bon, je vois que pendant que j'avais renoncé tu dialoguais avec toi-même ;)
Après tout ce n'est qu'un point de détail pour le confort d'utilisation, comme il ne semble pas y avoir de solution simple je vais laisser en l'état.

En tout cas merci beaucoup pour t'être finalement investi plus que moi la dedans...
Commenter la réponse de Menerlach

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.