begin process at 2012 05 30 20:02:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

(win32) scrollbar sur partie de l'ecran


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

(win32) scrollbar sur partie de l'ecran

mardi 11 octobre 2005 à 19:16:19 | (win32) scrollbar sur partie de l'ecran

mogwai93

bonjour,

j'aimerais avoir un scrollbar que sur une zone de l'ecran
exemple :   http://img154.imageshack.us/img154/221/image6gr.gif

pour le moment, j'arrive à "scroller" une fenetre entiere (avec le parametre WS_VSCROLL)
mais pour une partie de l'ecran ???

merci


jeudi 13 octobre 2005 à 14:18:05 | Re : (win32) scrollbar sur partie de l'ecran

magic_Nono

Membre Club
Tu peux par ex prendre une fenetre fille
qui a un scrollbar...

___________________________________________________________
Magicalement
Nono
jeudi 13 octobre 2005 à 15:45:55 | Re : (win32) scrollbar sur partie de l'ecran

mogwai93

tu veux dire qu'il faut "poser" une fenetre qui a un scrollbar sur la fenetre principale ?
si oui, comment faire ?
car j'obtiens 2 fenetres differentes :-(

merci
jeudi 13 octobre 2005 à 18:18:19 | Re : (win32) scrollbar sur partie de l'ecran

magic_Nono

Membre Club
fille => style CHILD, border NONE

puis Create !

___________________________________________________________
Magicalement
Nono
jeudi 13 octobre 2005 à 19:13:25 | Re : (win32) scrollbar sur partie de l'ecran

mogwai93

c'etait le WS_CHILD que j'avais oublié !
ca marche sur un cas simple
je vais voir sur un cas + complet

merci

vendredi 14 octobre 2005 à 09:29:46 | Re : (win32) scrollbar sur partie de l'ecran

mogwai93

j'ai encore un petit souci :
- j'ai bien ma fenetre generale et la fenetre fille avec l'ascenceur dans la zone que je desire

- j'aimerais rajouter sur la fenetre fille, des objets "texte"
j'ai cree ces objets en disant qu'ils etaient fils de la fenetre fille.
appel du genre :
for (int i = 1; i <= NB_MAX; i++)
{
hEdit = createwindow(...)
}
si les coordonnes passees dans le createwindow sont fixes (indenpendantes de i), il m'en cree NB_MAX les uns en dessous des autres !!
et le scroll me donne un resultat etrange :-/

si par contre, j'utilise SetWindowLong sur la fenetre fille, là ils ne s'affichent plus :-/

merci
en esperant avoir ete clair !

vendredi 14 octobre 2005 à 11:49:36 | Re : (win32) scrollbar sur partie de l'ecran

magic_Nono

Membre Club
pour le cas ou elles ne s'affiche plus,
lance un MS_SHOW ou assimilé

sinon, tres curieux...

___________________________________________________________
Magicalement
Nono
vendredi 14 octobre 2005 à 14:25:28 | Re : (win32) scrollbar sur partie de l'ecran

mogwai93

je n'arrete pas de tester toutes les possibilités, mais je n'obtiens tjs pas le resultat escompte.
merci de m'aiguiller !

la fenetre fille doit etre créée juste apres la fenetre principale
ou dans le WM_CREATE de la fenetre principale ?

les edits doivent etre créés dans le WM_CREATE de la fenetre principale
ou dans le WM_CREATE de la fenetre fille ?

si ca peut aider, voici les declarations de mes fenetres :
hFenetre_fille = CreateWindowEx (
                                          0,                   /* Extended possibilites for variation */
                                          szClassName,         /* Classname */
                                          "",       /* Title Text */
                                          WS_BORDER|WS_VISIBLE |WS_CHILD| WS_VSCROLL, /* default window */
                                          1,       /* Windows decides the position */
                                          50,       /* where the window ends up on the screen */
                                          535,                 /* The programs width */
                                          250,                 /* and height in pixels */
                                          hwnd,        /* The window is a child-window to desktop */
                                          NULL,                /* No menu */
                                          hInst,       /* Program Instance handler */
                                          NULL                 /* No Window Creation data */
                                          );

                 for (int i = 1; i <= NB_ITEMS; i++)
                 {
                     hEdit = CreateWindowEx(0,                      //more or 'extended' styles
                               "Edit",                          //'class' of control to create
                               TEXT(""),      //the control caption
                               WS_CHILD|WS_VISIBLE|WS_BORDER|ES_CENTER,         //control style: how it looks
                               100,                                    //control position: left
                               30*i,                                    //control position: top
                               100,                                   //control width
                               20,                                    //control height
                               hFenetre_fille,                                  //parent window handle
                               (HMENU)(ID_EDIT_FIRST + i),                                  //control's ID
                               hInst,                               //application instance
 
                              NULL);
                 }


merci
jeudi 20 octobre 2005 à 20:55:23 | Re : (win32) scrollbar sur partie de l'ecran

mogwai93

si qqn peut me dire pourquoi les champs edit ne s'affichent pas

merci


#include <windows.h>

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
WNDPROC OldEditProc;

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";
HINSTANCE hInst;


LRESULT CALLBACK EditProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   HWND hBuffer;
   
switch (message)
{
    case WM_CREATE :
                 hBuffer = CreateWindow(
                              "Edit",
                              TEXT(""),
                              WS_CHILD|WS_VISIBLE|WS_BORDER|ES_CENTER ,
                              1,
                              20,
                              100,
                              20,
                              hwnd,
                              (HMENU)(1),
                              hInst,
                              NULL);
            break;


default:
 break;
}
// Appeler la procédure originale:
return CallWindowProc(OldEditProc, hwnd, message, wParam, lParam);
}




int WINAPI WinMain (HINSTANCE hThisInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpszArgument,
                   int nFunsterStil)

{
   HWND hwnd;               /* This is the handle for our window */
   MSG messages;            /* Here messages to the application are saved */
   WNDCLASSEX wincl;        /* Data structure for the windowclass */

   hInst = hThisInstance;
   /* The Window structure */
   wincl.hInstance = hThisInstance;
   wincl.lpszClassName = szClassName;
   wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
   wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
   wincl.cbSize = sizeof (WNDCLASSEX);

   /* Use default icon and mouse-pointer */
   wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
   wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
   wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
   wincl.lpszMenuName = NULL;                 /* No menu */
   wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
   wincl.cbWndExtra = 0;                      /* structure or the window instance */
   /* Use Windows's default color as the background of the window */
   wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

   /* Register the window class, and if it fails quit the program */
   if (!RegisterClassEx (&wincl))
       return 0;

   /* The class is registered, let's create the program*/
   hwnd = CreateWindowEx (
          0,                   /* Extended possibilites for variation */
          szClassName,         /* Classname */
          "Windows App",       /* Title Text */
          WS_EX_CONTROLPARENT|WS_OVERLAPPEDWINDOW, /* default window */
          CW_USEDEFAULT,       /* Windows decides the position */
          CW_USEDEFAULT,       /* where the window ends up on the screen */
          544,                 /* The programs width */
          375,                 /* and height in pixels */
          HWND_DESKTOP,        /* The window is a child-window to desktop */
          NULL,                /* No menu */
          hThisInstance,       /* Program Instance handler */
          NULL                 /* No Window Creation data */
          );

   /* Make the window visible on the screen */
   ShowWindow (hwnd, nFunsterStil);

   /* Run the message loop. It will run until GetMessage() returns 0 */
   while (GetMessage (&messages, NULL, 0, 0))
   {
       /* Translate virtual-key messages into character messages */
       TranslateMessage(&messages);
       /* Send message to WindowProcedure */
       DispatchMessage(&messages);
   }

   /* The program return-value is 0 - The value that PostQuitMessage() gave */
   return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   HWND hBuffer, hBuffer2;

   switch (message)                  /* handle the messages */
   {
       case WM_CREATE:
           
   hBuffer = CreateWindowEx (
          0,                   /* Extended possibilites for variation */
          szClassName,         /* Classname */
          "Windows App",       /* Title Text */
          WS_CHILD |WS_VISIBLE | WS_VSCROLL, /* default window */
          50,       /* Windows decides the position */
          50,       /* where the window ends up on the screen */
          440,                 /* The programs width */
          200,                 /* and height in pixels */
          hwnd,        /* The window is a child-window to desktop */
          NULL,                /* No menu */
          hInst,       /* Program Instance handler */
          NULL                 /* No Window Creation data */
          );
          OldEditProc= (WNDPROC) SetWindowLong(hBuffer, GWL_WNDPROC, (LPARAM)EditProc);
           break;
   
       case WM_DESTROY:
           PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
           break;
       default:                      /* for messages that we don't deal with */
           return DefWindowProc (hwnd, message, wParam, lParam);
   }

   return 0;
}



Cette discussion est classée dans : ecran, win32, scrollbar, partie, img154


Répondre à ce message

Sujets en rapport avec ce message

win32 et fenetrage [ par djl ] je voudrais lancer une fentre win32 en pleine ecran mais sans changement de mode video (par exemple si la fenetre à un fond noir, l'ecran deviendra no ScrollBar Win32 [ par piemur2000 ] Bonjour,Je voudrais recuperer la valeur d'une scrollbar lorsque l'utilisateur modifie sa valeur.G fait ca :case WM_HSCROLL: lpsi->cbSize = sizeof(SCRO OpenGL comment effacer une partie de l'ecran en gardant ce qu'il y a derriere? [ par dletozeun ] Bonjour Oui ma question est loin d'etre clair! Donc je precise: En fait j'affiche une map en 3D sous opengl avec devant une interface graphique elle imprimer screen [ par blinix123 ] Bonjour,J'aimerais pourvoir imprimer une partie de la fenetre de mon programme, et je ne sais comment faire.Tout d'abord j'ai deja creer le bouton 'im Scrollbar et Win32 [ par MixerAnderson ] Bonjour,Depuis quelques temps je développe une IHM en Win32. J'ai développé des classes c++ dans lequel je gère le WndProc en méthode de classe (grace [ Win32 ] TabControl - TC_ITEM - ScrollBar - Suppression [ par lectpe ] Bonjour à tous. Je suis en train de réaliser une application avec l'API Win32. J'ai un TabControl dans lequel j'ai plusieurs TC_ITEM. J'ai deux ques (win32) Tabulations et scrollbar [ par mogwai93 ] Bonjour j'ai une fenetre avec une zone avec scrollbar cette zone contient plusieurs objets "edit" ils ne sont pas tous visibles au meme moment, d'où EasyPhp(mysql) en Win32 (sans MFC) [ par sran_isback ] Comment je peux utiliser Easyphp (mysql en fait) par win32 (sans mfc) avec visual c++? merci d'avance ! question d'expérience [ par kortin ] Bonjour, désolé de vous solliciter encore une fois, mais j'ai une question importante :Dans les livres, il est dit :Quand on recopie un objet qui cont programmation API win32 [ par poulpixx ] salut a tous,j'aimerai savoir si il n'existerai pas un bon tutorial pour apprendre la programmation windows(API WIN32).merci d'avance.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,484 sec (4)

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