begin process at 2012 05 30 10:43:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

utiliser plusieurs controles scrollbar dans une fenetre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

utiliser plusieurs controles scrollbar dans une fenetre

lundi 5 septembre 2005 à 17:27:17 | utiliser plusieurs controles scrollbar dans une fenetre

kaishaku

Bonjour,
je debute la programmation win32 en ecrivant un petit soft, pour mon pere, dans lequel j'ai besoin de 4 scrollbars horizontales. J'arrive à gerer le WM_VSCROLL avec 1 seule scrollbar mais avec 4, comment savoir quelle scrollbar à été modifiée?
J'ai fait un essai en testant déjà sur 2 scrollbar (1 verticale et 1 horizontale) si le lParam, contenu dans le WM_VSCROLL, contient la scrollbar mais Dev-Cpp n'accepte pas les pointeurs comme valeur dans un case.
Ma façon de faire est-elle bonne ? si oui comment je peux corriger mon erreur ? si non comment faire ?
merci beaucoup de m'accorder un peu de votre temps.

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
         case WM_CREATE :
        {
         // creation des SCROLLBAR
        hwndVScroll = CreateWindow ("ScrollBar",
                                   NULL,WS_CHILD | WS_VISIBLE | SBS_LEFTALIGN | SBS_VERT,
                                   20,30,0,300,
                                   hwnd, (HMENU) IDSB_SCROLL ,
                                   hInst,
                                   NULL);
       
        hwndHScroll = CreateWindow ("ScrollBar",
                                   NULL,WS_CHILD | WS_VISIBLE | SBS_LEFTALIGN | SBS_HORZ,
                                   60,30,300,30,
                                   hwnd, (HMENU) IDSB_SCROLL ,
                                   hInst,
                                   NULL);                                  
            /* Rend la fenetre visible a l'écran */
        ShowWindow (hwndVScroll, SW_SHOW);
        ShowWindow (hwndHScroll, SW_SHOW);

        UpdateWindow (hwnd);                          
        } // fin case WM_CREATE
        break;
       
        case WM_VSCROLL :
        {    
        switch (lParam) // Voir traitement de WM_VSCROLL en début
                                  // de code.
             {
              case hwndVScroll:  MessageBox(NULL,    // handle of owner window
                                            "Vscroll",    // address of text in message box
                                            "ScrollBar",    // address of title of message box 
                                            MB_OK    // style of message box
                                            );
              break;
             }
        }                         
        break;
       
        case WM_HSCROLL :
        {    
        switch (lParam) // Voir traitement de WM_VSCROLL en début
                                  // de code.
             {
              case hwndHScroll:  MessageBox(NULL,    // handle of owner window
                                            "Hscroll",    // address of text in message box
                                            "ScrollBar",    // address of title of message box 
                                            MB_OK    // style of message box
                                            );
              break;
             }
        }                         
        break;

lundi 5 septembre 2005 à 17:45:57 | Re : utiliser plusieurs controles scrollbar dans une fenetre

julienbj

Pour utiliser 4 scrollbars horizontales, lorsque tu les crées, tu stoques leur handle, puis dans ta fonction de traitement des message tu fais un switch sur ce handle.

static HWND hScroll1, hScroll2, hScroll3, hScroll4;

case WM_CREATE:
    hScroll1 = CreateWindow(...);
    hScroll2 = CreateWindow(...);
    hScroll3 = CreateWindow(...);  
    hScroll4 = CreateWindow(...);
    //Mets tes autres instructions
    break;

case WM_HSCROLL:
    switch( (HWND) lParam)
    {
       case hScroll1:
          //Code si scroll1
          break;
       case hScroll2:
          //Code si scroll2
          break;
       ...
    }



Vive le C
Tchao
Savon
lundi 5 septembre 2005 à 18:09:27 | Re : utiliser plusieurs controles scrollbar dans une fenetre

BruNews

Administrateur CodeS-SourceS
CHOIX COULEURS (WIN32, NON MFC)
http://www.cppfrance.com/code.aspx?id=10501

Regarde dans RgbTest.cpp le case WM_VSCROLL, ça traite pour 6 scrollbars.

ciao...
BruNews, MVP VC++
mardi 6 septembre 2005 à 17:08:40 | Re : utiliser plusieurs controles scrollbar dans une fenetre

kaishaku

Merci beaucoup pour vos reponses.
julienbj : Il manquait un cast dans mon code et pourtant j'ai toujours des erreurs quand je compile avec un switch/case mais tant pis j'utilise une serie de if qui ne me fait pas d'erreurs.

a tout hasard voici le code et les erreurs:
case WM_HSCROLL:
    switch( (HWND) lParam)   <- switch quantity not an integer
    {
       case hScroll1:      <- hscroll1 cannot appear in a constant-expression
          //Code si scroll1
          break;
       case hScroll2:
          //Code si scroll2
          break;
       ...
    }

BruNews je cherchais justement un petit soft comme le tient pour avoir les valeurs rgb d'une couleur pour mon bout de code.

merci encore a tous les 2.


Cette discussion est classée dans : message, case, wm, of, scrollbar


Répondre à ce message

Sujets en rapport avec ce message

ordonner un message WM_CTLCOLORDLG ? [ par Gendal67 ] Bonsoir tout le monde...Alors la, je reste coincé sans réponses sur le forum aors je vous pose la question (ça pourra en aider d'autres surement)...co Timer [ par youri01 ] salut,j'ai un ptit problème avec le timer je n'arrive pas à le faire fonctionner. dans la "WindowsProcedure" je mets :switch (message)              {  API Windows, gestion de WM_COMMAND [ par coucou_le_minou ] Bonjour, tout d'abord pardonnez moi si mon message ne correspond pas a la rubrique choisie, j'ai eu quelques soucis a cerner la categorie de mon probl Win32 - Message WM_LBUTTONUP non reçu [ par nico255 ] Bonsoir, mon programme en C Win32 est en tray-icon et s'inspire fortement de la source CONTROLE-VOLUME-OSD-WIN32 (ID=38949) - une CreateWindowEx WS_ C/API Win32 - Problème avec System Try.... [ par JimyRyan ] Bonjour.J'ai un programme d'on j'ai créé une interface graphique en C/API Win32.Mon derrnier problème avant de cloturer le developpement de mon prog e Impossible d'envoyer un mail avec Mapi + Outlook ? [ par GDon_Fr ] Bonjour à tous,Je dois développer une application qui saura envoyer un mail via n'importe quel client mail compatible avec "Simple Mapi". En regardant Mapi et outlook ... comment ca marche ? [ par GDon_Fr ] Bonjour à tous,Comme j'ai pas de réponse à côté je me permets de venir sur ce forum, vu que ca devient super mega URGENT :((((Je dois développer une a Probleme de gestion de clavier win32 [ par fourne ] bonjour,Alors voila je m explique , je fait un logiciel de mix audio tyoe mixman studion pour ceux qui connaissent ... le principe de ce soft est d at quitter WinHelp() [ par yerosnimus ] Bonjour, Sur le site msdn : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/winhelp.asp redessiner un bouton après appui [ par tdeco ] SalutEn fait j'ai une boite de dialogue où j'ai plusieurs boutons. Sur j'appui d'un bouton, je modifie une variable, puis j'envoie un message WM_DRAWI


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,242 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales