Traduction en FR programme en fenetre devc++ [Résolu]

Signaler
Messages postés
62
Date d'inscription
jeudi 4 mai 2006
Statut
Membre
Dernière intervention
28 novembre 2009
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
#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

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
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 ?
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
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.
Messages postés
62
Date d'inscription
jeudi 4 mai 2006
Statut
Membre
Dernière intervention
28 novembre 2009

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
Messages postés
62
Date d'inscription
jeudi 4 mai 2006
Statut
Membre
Dernière intervention
28 novembre 2009

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
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
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.