Slider Bar ?

PepeDeLuxe Messages postés 14 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 29 avril 2005 - 23 mai 2004 à 13:11
PepeDeLuxe Messages postés 14 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 29 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...
A voir également:

5 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
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));

Lire sa position:
itoa(SendMessage(hsld, TBM_GETPOS, 0, 0), szbuff, 10);
MessageBox(hdlg, szbuff, szappname, 0);

Simple, non ?

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_guimou Messages postés 17 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 23 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...

@+
Guimou
0
PepeDeLuxe Messages postés 14 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 29 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....
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 mai 2004 à 14:18
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE x, PSTR y, int z)
{
InitCommonControls(); / !!!!!!!!!
DialogBoxParam(hinst, (LPCTSTR)IDD_APP, 0, AppDlgProc, 0);
return 0;
}

ciao...
BruNews, Admin CS, MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PepeDeLuxe Messages postés 14 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 29 avril 2005
23 mai 2004 à 19:04
Merci super ca marche !!!

#include <commctrl.h>
Projet->Setting->Link à Objet/library module "comctl32.lib"

A plus....
0
Rejoignez-nous