IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

comment faire un fenetre en C ou C++


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 3
    Points
    3
    Par défaut comment faire un fenetre en C ou C++
    bonjours
    je voudrai savoire ou je pourai trouver des cours qui m'aiderai a créer une fenetre windows en C (ci c'est possible sinon la meme chose en C++) ou sinon ecrivez s.v.p le scripte dans ce forum
    (je veus juste savoire comment faire une fenetre comme celle d'internet exploreur par exemple just le contoure) j'ai entendu parler de l'API ou quelque chose comme ca j'ai telechargée la lecon sur ce site meme mais c m'avance pas
    merci d'avance

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: comment faire un fenetre en C ou C++
    Bonjour,
    Citation Envoyé par me_ww
    j'ai entendu parler de l'API ou quelque chose comme ca
    Oui, l'API windows : API Windows en C

    Citation Envoyé par me_ww
    mais c m'avance pas
    C'est à dire ?

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    merci pour le lien parce que j'ai telechargé un fichier PDF qui menbarqué sur un fichier DLL ntdll.dll je croie enfin cher pas bon ba merci @+

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: comment faire un fenetre en C ou C++
    Citation Envoyé par me_ww
    je voudrai savoir ou je pourai trouver des cours qui m'aiderai a créer une fenetre windows en C
    Ce que tu veux faire est de la programmation GUI (Graphic User Interface ou Interface Graphique Utilisateur).

    La mise en oeuvre de cette technique nécessite un minimum de formation, car l'approche est différente de la programmation classique. En effet, il n'y a pas de main(), on traite des messages et des évènements, l'environnement est multi-processus, voire multi-tâche. Bref, c'est un autre monde.

    Tu trouveras de l'aide détaillée (tutoriels etc.) sur le forum "Développement Windows".

    Il y a ensuite plusieurs façon de mettre en oeuvre la programmation GUI :
    • système : on utilise l'API de son système (par exemple, WIN32). L'avantage est qu'on a une précision maximale (moutons à cinq pattes). L'inconveniant, c'est que le code source n'est pas portable sur un autre système; Il faut tout réécrire. Corrolaire, l'expérience acquise ne peut pas être rentabilisée ailleurs...
    • couche d'abstraction. Il existe des bibliothèques 'tierces' qui constituent une API indépendant du système. La programmation GUI est modélisée selon des mécanismes 'universel', et le codage se fait exclusivement avec des fonctions de haut niveau qui ignorent totalement le système sous-jacent. Par exemple, GTK+ est très utilisé si on code en C. Avanteges : facilité de mise en oeuvre, portabilité, préservation des connaissances. Inconveniants : on a moins de précision (adieu les moutons à 5 pattes, on revient à des applications plus 'standards').
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    j'ai un petit probleme quand j'ecri mon scripte pour faire une fenetre en API et que je compile le tous et que je lance le programe une fenetre DOS s'affiche deriere la fenetre que j'ai tapé et quand je la ferme ca ferme toute l'application donc comment faire pour ne pas la faire aparetre
    merci d'avance
    ps le scripte etant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    #include <windows.h>
     
    HINSTANCE hinst;
     
    LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
     
    int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
                                                      LPSTR lpCmdLine, int nCmdShow)
    {
        HWND hwnd;
        MSG msg;
        WNDCLASS wc;
     
        hinst = hinstance;
     
        wc.style = 0 ;
        wc.lpfnWndProc = MainWndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = NULL;
        wc.hIcon = NULL;
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = NULL;
        wc.lpszMenuName =  NULL;
        wc.lpszClassName = "MaWinClass";
     
        if(!RegisterClass(&wc)) return FALSE;
     
        hwnd = CreateWindow("MaWinClass", "Titre", WS_OVERLAPPEDWINDOW,
                                       CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
                                                       NULL, NULL, hinstance, NULL);
        if (!hwnd)  return FALSE;
     
        ShowWindow(hwnd, nCmdShow);
     
        while (GetMessage(&msg, NULL, 0, 0))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        return msg.wParam;
    }
     
    /***********************************************************/
     
    LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        static HWND hEdit;
     
        switch (uMsg)
        {
            case WM_CREATE:
                hEdit =CreateWindow("edit", "Texte",
                  WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL,
                                               0, 0, 0, 0, hwnd, NULL, hinst, NULL);
                return 0;
     
            case WM_SIZE:
                MoveWindow(hEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
                return 0;
     
            case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
     
            default:
                return DefWindowProc(hwnd, uMsg, wParam, lParam);
        }
    }
    (il a ete reprie du site)

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Pourtant, aucune console ne devrait s'ouvrir avec ce programme...
    Tu utilises quel IDE ? Avec quel type de projet?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par me_ww
    j'ai un petit probleme quand j'ecri mon scripte pour faire une fenetre en API et que je compile le tous et que je lance le programe une fenetre DOS s'affiche deriere la fenetre que j'ai tapé et quand je la ferme ca ferme toute l'application donc comment faire pour ne pas la faire aparetre
    • Ce n'est pas un 'script', mais un code source.
    • Tu dois avoir un compilateur prévu pour faire des applications GUI Windows (par exemple Dev-C++)
    • Tu dois créer un projet GUI (et non console)
    • Comme déjà indiqué, les experts de la programmaion Windows sont sur le forum "Développement Windows"
    Pas de Wi-Fi à la maison : CPL

  8. #8
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    il s'agit d'une option de compil ou plus exactement de link

    avec le Mingw (gcc) c'est

    -mwindows

    elle est générée automatiquement dans le makefile quand vous utilisez
    DEVC++ (appli GUI)

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/03/2009, 00h23
  2. [WPF] Comment faire une fenetre type explorateur windows (coté listbox)
    Par Zucher dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 28/01/2008, 16h16
  3. Réponses: 9
    Dernier message: 03/09/2006, 23h25
  4. Réponses: 3
    Dernier message: 16/05/2006, 10h32
  5. [SWT] Comment faire des fenetres internes ??????
    Par sebounator dans le forum SWT/JFace
    Réponses: 5
    Dernier message: 22/04/2004, 01h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo