PepeDeLuxe
Messages postés14Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention29 avril 2005
-
23 mai 2004 à 13:11
PepeDeLuxe
Messages postés14Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention29 avril 2005
-
23 mai 2004 à 19:04
J fais une ptite application en api window mais j ne sais absolument pas gérer les slider bar et j ne trouve aucun exemple assez simple pour que j puisse comprendre. Est que quelqu'un aurait la gentillesse de me faire un ptit exemple ??
Ca serait cool...
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201917 23 mai 2004 à 13:36
Tu as regarde dans MSDN, se trouve en 'trackbar' dans les commons controls.
Exemple:
hsld = GetDlgItem(hdlg, ID_SLID);
SendMessage(hsld, TBM_SETRANGE, 1, MAKELONG (0, 50));
cs_guimou
Messages postés17Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention23 mai 2004 23 mai 2004 à 13:41
Salut, voilà une exemple de slidebar pompé sur un code ke j'avais fé ya super longtemps
hWnds[i] = CreateWindowEx(0, // styles étendus
TRACKBAR_CLASS, // défini dans windows.h je crois
"vert", // titre inutile
WS_CHILD|WS_VISIBLE|WS_BORDER|TBS_ENABLESELRANGE, //styles
180, 460, 170, 55, // position de ta slidebar
hWnds[0], // parent
(HMENU)TRACKBARVERT, // numéro de contrôle
hInstance, // instance de prog
NULL);
ca c'est pour la créer, mais c'est pareil qu'un slidebar créé dans un dialog
ensuite : initialiser le nombre de positions que le curseur peut prendre
SendMessage(hWnds[i], TBM_SETRANGE,
(WPARAM) FALSE, // redraw flag
(LPARAM) MAKELONG(MIN_POS, MAX_POS)); // min. & max. positions
/* numéro de la premiere et derniere position (intéressant: quand ce n'est pas de 0 à qqch tu n'as pas à convertir la valeur à chaque fois que tu regardes la position du curseur, tu peux très bien spécifier les positions -50 à 50 par exemple) */
SendMessage(hWnds[i], TBM_SETPAGESIZE,
0, (LPARAM) PAGE_SIZE); // new page size
/* le page size c'est le nombre de positions dont le curseur va se déplacer a chaque fois que tu appuieras sur GAUCHE ou DROITE avec ta slidbar en focus */
SendMessage(hWnds[i], TBM_SETSEL,
(WPARAM) FALSE, // redraw flag
(LPARAM) MAKELONG(SEL_MIN, SEL_MAX);
/* ca je sais plus très bien ce à quoi ca sert mais je crois qu'on met toujours la meme chose que au SETRANGE... MSDN pour plus de détails :-p */
SendMessage(hWnds[i], TBM_SETPOS,
(WPARAM) TRUE, // redraw flag
(LPARAM) POSITION);
/* placer le curseur à la position POSITION... ce n'est pas obligatoire, si tu ne le met pas le curseur sera à la position minimale */
ensuite, pendant le traitement...
la trackbar envoie WM_HSCROLL à la fenetre parent à chaque fois k'elle change de place (ou WM_VSCROLL si elle est verticale)
position = SendMessage(hWnds[i], TBM_GETPOS, 0, 0);
voila... j'espere t'avoir aidé... si c'est pas très clair n'hésite pas à demander des précisions...
PepeDeLuxe
Messages postés14Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention29 avril 2005 23 mai 2004 à 14:16
C super sympa merci, j'ai compris, j'ai fait a peu près ca en la créant par l'éditeur.
MAIS quand j lance le prog ma dialogbox ne s'affiche pas et dès que j'enlève la slidebar du dialog, il s'affiche à nouveau :-(
Je comprends vraiment pas....