romydamour
Messages postés30Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention 6 juillet 2005
-
2 mai 2005 à 11:22
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 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.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 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.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 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.
romydamour
Messages postés30Date d'inscriptionmardi 15 mars 2005StatutMembreDerniè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