Saturation de contrôles dans une fenêtre de dialogue

Résolu
romydamour Messages postés 30 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 6 juillet 2005 - 2 mai 2005 à 11:22
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 2 mai 2005 à 16:10
au cours de la réalisation de mon appli API win32 sous visualc++, je me suis rendu compte que j'étais limité en nombre de contrôles, j'ai un grand nombre d'EditBox à y mettre et pourtant je suis bloqué, COMMENT FAIRE?
Et oui, j'ai également un autre problème, je fait de requêtes sur une base de données que j'ai au préalable créé, donc à l'aide d'un bouton je veux récupérer des données de ma table et les insérer dans une liste, CA JE SAIS FAIRE du moment que ma liste soit dans la même boite de dialogue, et le problème est qu'elle se trouve sur une autre boite.


Merci d'avance romy

3 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
2 mai 2005 à 16:10
Si tu préfères mettre la listes dans une fenêtre, tu peux faire
ceci dans la WndProc de cette fenêtre, pendant le
traitement du message WM_CREATE:

1- Créer la liste avec CreateWindow()

2- Récupérer les données de la base

3- Insérer les données dans la liste



S'il s'agit d'une boite de dialogue, tu peux faire ceci dans la
DlgProc de cette deuxième boite de dialogue pendant le traitement du
message WM_INITDIALOG:

1- Récupérer les données de la base

2- Insérer les données dans la liste

Je suppose que ta liste est en ressource. Dans ce cas pas besoin de la créer.



A l'appui de ton bouton, le programme ne fait que lancer ta fenêtre (ou
boite de dialogue), le reste du travail est fait dans la procédure de
cette derniere. Il ne faut pas oublier de mettre des variables en
global afin qu'elles soient accessibles dans cette procédure.
3
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
2 mai 2005 à 15:00
Bonjour,

L'éditeur de ressources de Visual C++ limite le nombre de controles à
255. Pour contourner ce problème, il faut créer les controles
dynamiquement grâce à CreateWindow() pendant le traitement du message WM_INITDIALOG.
Il faudra donc autant d'appels à cette fontion que de controles. Pour
éviter cela, tu peux jongler un peu avec les boucles quand c'est
possible.

Pour ta deuxième question, je pense qu'il est préférable d'utiliser des
onglets. Il te permettent de mettre autant de controles que tu veux sur
ta boite de dialogue (EDIT, STATIC, LISTBOX, etc...). Ainsi seuls les
contoles utiles seront montrés et les autres cachés. En appuyant sur
ton bouton, les données sont récupérées de ta base, insérées dans ta
liste puis l'onglet de cette liste est mis au premier plan pour
l'afficher.

Bonne programmation.
0
romydamour Messages postés 30 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 6 juillet 2005
2 mai 2005 à 15:24
je suis tout à fait d'accord avec toi, c'est d'ailleurs ce que j'avais fait, et sur ma boite principale j'ai le tabctrl et sur d'autres fenêtres (pour lesquelles j'ai mis comme propriété le style CHILD), j'ai mes différentes listes, à moins que tu voyais ca différemment?
et sais tu, justement si le nombre de boites de dialogue est limité, étant donné que je vais devoir en faire un paquet, peut-être une centaine!!
sinon merci pour ta réponse précedente
0
Rejoignez-nous