Traduction en FR programme en fenetre devc++

Résolu
cs_toto6311 Messages postés 62 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 28 novembre 2009 - 25 juil. 2009 à 21:27
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 27 juil. 2009 à 09:28
#include <windows.h>
 
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
 
/*  Faites le nom de la classe dans une variable globale  */
char szClassName[ ] = "Test Vins";
 
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)
 
{
    HWND hwnd;               /* Il s'agit de la poignée de notre fenêtre*/
    MSG messages;            /* Voici les messages de l'application sont enregistrées */
    WNDCLASSEX wincl;        /* Structure de données pour la windowclass */
 
    /* La structure de la fenêtre */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* Cette fonction est appelée par les fenêtres */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clics */
    wincl.cbSize = sizeof (WNDCLASSEX);
 
    /*  Utilisez l'icône par défaut et le pointeur de la souris*/
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* Pas de menu */
    wincl.cbClsExtra = 0;                      /* N octets supplémentaires après la classe de fenêtre */
    wincl.cbWndExtra = 0;                      /* structure ou de la fenêtre par exemple */
    /*   Utilisation de Windows par défaut de couleur que le fond de la fenêtre */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
 
    /* Enregistrez la fenêtre de la classe, et si elle ne parvient pas quitter le programme */
    if (!RegisterClassEx (&wincl))
        return 0;
 
    /* 	La classe est enregistré, nous allons créer le programme*/
    hwnd = CreateWindowEx (
           0,                   /* Extension des possibilités de variation */
           szClassName,         /* Classname */
           "Devile",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* fenêtre par défaut */
           CW_USEDEFAULT,       /*  Windows décide de la position */
           CW_USEDEFAULT,       /* où la fenêtre se termine sur l'écran */
           100,                 /*  Les programmes de largeur*/
           100,                 /* 	et la hauteur en pixels */
           HWND_DESKTOP,        /*  La fenêtre est un enfant-fenêtre sur le bureau */
           NULL,                /* No menu */
           hThisInstance,       /* 	Programme instance gestionnaire*/
           NULL                 /*  Non Création de la fenêtre de données */
           );
 
    /* Rend la fenêtre visible sur l'écran */
    ShowWindow (hwnd, nFunsterStil);
 
    /*  Exécutez le message en boucle. Il se déroulera jusqu'au getMessage () retourne 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Traduire virtuelle des messages clés en caractères des messages */
        TranslateMessage(&messages);
        /*  Envoyer un message à WindowProcedure */
        DispatchMessage(&messages);
    }
 
    /* Le programme de retour de valeur est de 0 - la valeur que PostQuitMessage () a donné*/
    return messages.wParam;
}
 
 
/*  Cette fonction est appelée par la fonction Windows DispatchMessage ()  */
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* gérer les messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* WM_QUIT envoyer un message à la file d'attente */
            break;
        default:                      /* 	les messages que nous ne traitons pas avec */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
 



Je recherche a introduire un bouton sur n'importe quel forme avec CreateWindowEx
je peux avoir un peux d 'aide merci
devile-la_beu

5 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 juil. 2009 à 20:02
Du concret ? Ligne 251 du main.c du source de mon lien plus haut :

hOk = CreateWindowEx(0, _T("BUTTON"), _T("Ok"),
                     WS_VISIBLE | WS_CHILD | WS_TABSTOP,
                     MARGIN * 3, nTop, 80, 25,
                     _hWnd, (HMENU)IDOK, _hThisInstance, NULL);


C'est pas concret ?
3
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
25 juil. 2009 à 23:07
Salut,

La réponse est dans la question, CreateWindowEx, documentée ici.

T'as un exemple d'appli qui utilise CreateWindowEx pour faire ses deux boutons ici.
0
cs_toto6311 Messages postés 62 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 28 novembre 2009
25 juil. 2009 à 23:21
merci rt15 , mes j'ai besoin d'un exemple concret , pour afficher un bouton dans mon code , a tu plutos un lien ou il explique comment faire avec createWindowEx
0
cs_toto6311 Messages postés 62 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 28 novembre 2009
26 juil. 2009 à 21:15
Salut merci déjà pour tes réponses rapide , peux tu me dire comment positionné le code que tu ma donnés dans mon main.cpp
hOk = CreateWindowEx(0, _T("BUTTON"), _T("Ok"),

                     WS_VISIBLE | WS_CHILD | WS_TABSTOP,

                     MARGIN * 3, nTop, 80, 25,

                     _hWnd, (HMENU)IDOK, _hThisInstance, NULL);
Ou je doit le placer pour que je puisse compiler le projet ,et me rendre un peux mieux compte comment ça marche , je débute encore dans le c++ , j'espère que mes questions sont pas trop ennuyeuse

A Bientôt
0

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

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
27 juil. 2009 à 09:28
N'espère pas pouvoir utiliser une fonction sans la comprendre...

Tu as la documentation.
Tu as un exemple complet.

Tu as tout ce qu'il faut pour t'en sortir !

Il faut aussi que tu comprennes l'intégralité du code que tu as posté dans ton premier message.
C'est la base du Win32.
Examine chacune des lignes, regarde ce qui est définis, qui appelle qui...
Regarde la documentation des fonction appelées...

Et tu sauras en toute confiance ou placer ce code, et pourquoi il compilerait ou ne compilerait pas.
Par exemple, dans mon code, j'utilise MARGIN. Il y a de bonne chance pour que ce ne soit pas défini dans ton code.
Pareil pour _hThisInstance et _hWnd.
Il faut que tu comprennes ce que c'est (En regardant plus en détail mon code ou la doc de CreateWindowEx) pour pouvoir les remplacer par ce qu'il faut.
0
Rejoignez-nous