begin process at 2012 02 13 13:47:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Aide sur action d'un bouton dans une sous fenêtre


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

Aide sur action d'un bouton dans une sous fenêtre

mercredi 9 mars 2005 à 20:35:06 | Aide sur action d'un bouton dans une sous fenêtre

jbmartinez

J'ai programmé sur Dev C++ un bouton avec image dans une fenêtre fille de la fenêtre principal. Aussi je ne parviens plus à récupérer le message du bouton dans ma fenêtre principal puisque les message sont envoyer dans la fenêtre fille. Enfin c'est ce que j'ai cru comprendre puisque quand je change la fenêtre parent dans les caractèrestique du bouton en mettant la fenêtre principal le bouton déclanche bien l'action contenu dans "switch(LOWORD(wParam))".

Comment pourais-je donc envoyer le message dans la bonne fenêtre, sachant que si je mette le bouton dans la fenêtre principal (hwnd) il est plus difficile de gérer sa possition avec la fenêtre fille et donc sont apparission

Merci de votre aide.

JBM

_____________________________________
Le code :

 /* Fenête principal */
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Red Castle - \"Le Mystère des Ummites\"",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           800,                 /* The programs width */
           600,                 /* 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 */
           );
          

/* Fenêtre */

Intro = CreateWindow("EDIT", "",
                       WS_CHILD | WS_VISIBLE,
                       0, 0, 800, 600,
                       hwnd, NULL, g_hInst, NULL);
                       ShowWindow (Intro, FALSE);

             /* Boutton */
             HBITMAP Img_Btn;
             hBouton = CreateWindow (
             "button",/* Builtin button class */
             "",
             BS_BITMAP | WS_CHILD | BS_PUSHBUTTON,
             200, 430, 85, 87,
             Intro,/* Parent is this window. */
             (HMENU) ID_BTNMEDIA1,
             ((LPCREATESTRUCT) lParam)->hInstance,
             NULL
             );
             Img_Btn = LoadBitmap (g_hInst,"SOND") ;
             SendMessage(hBouton, BM_SETIMAGE ,IMAGE_BITMAP ,(long)  
             Img_Btn);            
             ShowWindow (hBouton, FALSE);


LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_COMMAND:
             switch( wParam )
             {
                   /* Menu */
                   case DOS_INTRO:
                   ShowWindow (Intro, TRUE);
                   ShowWindow (Contact, FALSE);
                   ShowWindow (hBouton, TRUE);                  
                   UpdateWindow(hBouton);                  
                   break;
                  
                   case DOS_CONT:
                   ShowWindow (Intro, FALSE);
                   ShowWindow (Contact, TRUE);                  
                   break;
                  
                   case QUITTER:
                   PostQuitMessage (0);
                   break;                                                        
                  
             }
             switch(LOWORD(wParam))
             {
                   /* Bouttons */
                   case ID_BTNMEDIA1:
                   ShellExecute(NULL, NULL, "magnetophone/ummovoice.wav", NULL, NULL, SW_SHOWNORMAL);
                   break;
             }            
            break;
   }
}_______________________________________


mercredi 9 mars 2005 à 21:21:02 | Re : Aide sur action d'un bouton dans une sous fenêtre

yoyo269

Membre Club
Crée une classe pour ta fenêtre fille avec une procédure différente de celle de ta fenêtre principale.

YOYO, @+.
YOYO
mercredi 9 mars 2005 à 22:30:36 | Re : Aide sur action d'un bouton dans une sous fenêtre

jbmartinez

Merci pour ta réponce YOYO, mais je suis un véritable autodidacte au début de la programation c++.
J'ai donc un problème : Oui, créer une classe pour ma fenêtre fille, mais comment
Pour ma fenêtre principale c'est dev c++ qui le fait pour moi.
Après ta réponce je suis allé voir des sites. Je comprend qu'il faux que je reproduise quelque choses avec "
WNDCLASSEX wincl;" en donnent un autre nom et que je lui applique les instruction :
/* The Window structure */
    wincl.hInstance = g_hInst;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);


Mais
1 - est-ce possible sur une fenêtre CreateWindow( )
2 - dois-je prendre toute les caractéristique ou seulement :
mafenêtre.lpszClassName = szClassName;
mafenêtre.lpfnWndProc = WindowProcedure; 

Et donc si cela fonctionne je n'aurais plus cas recréer une lecture des message de cette classe avec
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message) 
    {
    }
}
c'est bien cela

Merci pour ton aide
jeudi 10 mars 2005 à 00:01:19 | Re : Aide sur action d'un bouton dans une sous fenêtre

BruNews

Administrateur CodeS-SourceS
Exact, 2 fenêtres différentes doivent se gérer dans des fonctions callback différentes.

ciao...
BruNews, MVP VC++
jeudi 10 mars 2005 à 13:58:21 | Re : Aide sur action d'un bouton dans une sous fenêtre

jbmartinez

Ou je dois mettre QUOI et COMMENT

Ma fenêtre (intro) fille est une CreateWindow("edit"). Ou puis-je lui donner le nom de la classe

Pour créer la classe la consernant, dois-je écrire :
mafenêtre.lpszClassName = szClassName;
mafenêtre.lpfnWndProc = WindowProcedure;
dans WinMain, ainsi que :

(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message) 
    {
    }
}



Ou puis-je uttiliser une même classe pour plusieur fenêtre pour ne gérer qu'un seule groupe de message

Si vous avez un livre à me conseiller
Je cherche un livre qui me permetre de répondre à de la programation en API Windows
Je ne trouvé dans les magasin que des livre qui dévelope la programmation c++ sur DOS et auccun sur Windows.

Merci.
jeudi 10 mars 2005 à 14:14:28 | Re : Aide sur action d'un bouton dans une sous fenêtre

BruNews

Administrateur CodeS-SourceS
[ Lien ]
[ Lien ]

ciao...
BruNews, MVP VC++
jeudi 10 mars 2005 à 14:14:53 | Re : Aide sur action d'un bouton dans une sous fenêtre

yoyo269

Membre Club
Je peux pas m'occuper de ça pour l'instant, mais ce soir je te donne un exemple.

YOYO, @+.
YOYO
jeudi 10 mars 2005 à 17:40:56 | Re : Aide sur action d'un bouton dans une sous fenêtre

yoyo269

Membre Club
Si j'ai bien compris tu veux utiliser un edit sur une fenêtre.
Si c'est bien ça, t'as juste à créer ta fenêtre comme tu l'as déjà fait, donc là pas de pb.
Par contre quand tu crées ton edit, le nom de classe est défini par défaut c'est "edit" et rien d'autre. Tu dois également donner en argument (le 9ème) à CreateWindow, le HWND de la fenêtre où tu veux qu'il se trouve.
Pour ton code ça sera donc hwnd tout simplement.

J'espère que c'est ce que tu voulais.
Dans tous les cas tiens-moi au courant.

P.S.: Moi aussi je suis sous Dev-C++ 4.9.9.2

YOYO, @+.
YOYO
vendredi 11 mars 2005 à 19:15:12 | Re : Aide sur action d'un bouton dans une sous fenêtre

jbmartinez

Reprenons :
J'ai une fenêtre principal (créé avec CreateWindowEx) dans laquelle j'ai créer plusieur editbox (crée avec CreateWindow) que je veux faire apparêtre l'une après l'autre via un menu dans ma fenêtre principal. Dans mon editbox j'ai intégré un bouton (crée avec CreateWindow).
Ne serait-il pas possible pour simpliffier le problème de renvoyer le message du bouton de l'éditbox dans la fenêtre principal en uttilisant le principe parent/enfant comme on le ferait pour du texte en Javascript
Cela m'éviterait de devoir écouter les message de chacune de mes fenêtre et me permettré de ne pas répéter les actions dans un autre CALLBACK que celui dejà uttilisé par la fenêtre principal

Merci de votre aide.

vendredi 11 mars 2005 à 19:36:17 | Re : Aide sur action d'un bouton dans une sous fenêtre

yoyo269

Membre Club
Oui ben c'est la méthode qui est juste au-dessus de ton message

YOYO, @+.
YOYO

1 2

Cette discussion est classée dans : bouton, fenêtre, showwindow, hwnd, window


Répondre à ce message

Sujets en rapport avec ce message

dev sans MFC [ par c2millet ] Voilà j'essaie de faire un prog sans MFC et je voudrais changer la couleur de text d'un bouton ainsi que ça couleur de fond.Si qqun peu m'aider mercim Comment créer un Bouton [ par new0staff ] Bonjour!Le programme ci-dessous crée et affiche une fenêtre simple. Ce que je souhaite faire, c'est rajouter un Bouton à cette fenêtre.Ce qui ne joue Obtenir le HWND d'un bouton. [ par aztcaLISS ] Salut,Je voudrais savoir comment je pourrais récupérer le HWND d'un bouton qui se trouve dans une fenêtre d'une application. Je peux appeler la foncti Empecher l'affichage d'une fenêtre dans WM_SHOWWINDOW [ par HeavenForsaker ] Bonjour,Je voudrai savoir si on peux empecher l'affichage d'une fenêtre dans le WM_SHOWWINDOW, j'ai essayé return 1 et return -1, même ShowWindow(hwd, 2 Questions : icone fenetre & Taille... [ par clabe ] Bonjour, Je voudrais savoir comment je pourrais tout d'abord changer l'icone dans la barre de titre de ma fenetre... Ensuite j'aurais aimé savoir comm probleme bizzare.... [ par lektrosonic ] Bonsoir, j ai code ce client...Code C:#include #include #include #define ID_CONNECT 1#define ID_SEND 2#define WM_SOCKET (WM_APP + 100)<br Bouton / CView [ par Ombitious_Developper ] Salut :J'ai créé un projet en MFC de type SDI.Je veux ajouter un Bouton dans la zone client de ma fenêtre.La classe de base de ma fenêtre est la class Initialiser DirectX en DOS [ par bizzard4 ] Bonjour !J'essaye de faire initialiser DirectX par un programme Win32Console en C++ (évidament). Mais le problème c'est que dans le CreatDevice il me Child Window [ par yerosnimus ] bonjour,Je lis la documentation du site MSDN Library concernant la programmation windows à laquelle je ne connais rien et j'ai un peu de mal à m'en so Creer un bouton avec l'API Windows [ par banane_rose ] code : ICI C'est sensé faire apparaitre une fenêtre avec un gros bouton "Quitter" au milieu . Mais rien ne marche , même pas l'affichage de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,092 sec (3)

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