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

MFC Discussion :

fenetre en mode console


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 84
    Par défaut fenetre en mode console
    bonjour,
    est-il possible de créer une fenetre dans un programme console win32
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
                 
    }
    

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    oui

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 84
    Par défaut
    je comprends que les réponses courtes soient les plus efficaces
    mais juste si c'est possible de me mettre sur la route :
    1- la fonction main de console est differente de la fonction main d'un projet win32

    2- quand je met cette fonction dans la main de console, il y a erreur :
    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
    
    
    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { HWND hwnd; WNDCLASSEX wincl; int nFunsterStil; HINSTANCE hThisInstance; // Structure de la fenêtre wincl.hInstance = hThisInstance; wincl.lpszClassName = "classe"; wincl.lpfnWndProc = NULL; // Fonction appelée par Windows wincl.style = CS_HREDRAW|CS_VREDRAW; // Redessine à chaque fois wincl.cbSize = sizeof(WNDCLASSEX); // Icônes, pointeur, etc wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor(NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); // Fond blanc // Enregistre la classe sinon quitte le programme RegisterClassEx(&wincl); // Création de la fenêtre hwnd = CreateWindowEx(0, "classe", "C++ et Windows - 01", // Titre WS_OVERLAPPEDWINDOW, // Fenêtre par défaut GetSystemMetrics(SM_CXSCREEN)/4, // left GetSystemMetrics(SM_CYSCREEN)/4, // top GetSystemMetrics(SM_CXSCREEN)/2, // width GetSystemMetrics(SM_CYSCREEN)/2, // height HWND_DESKTOP, NULL, hThisInstance, NULL ); //Montre la fenêtre ShowWindow(hwnd, argc); return 0; }
    l'erreur concenrne le HINSTANCE hThisInstance
    comment je pourrai la corriger
    merci

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    GetModuleHandle(NULL); te retourne le HINSTANCE de l'exécutable (même appelée depuis une DLL, cette fonction retournera le HINSTANCE du .EXE)

    Note: Pour la petite histoire, je sais que GetModuleHandle retourne un HMODULE. Mais:
    1. ceux qui regarderont dans les headers verront le typedef HINSTANCE HMODULE;
    2. J'ai trouvé cela dans un exemple de code sur MSDN


    PS: Si tu veux la couleur de fond normale d'une fenêtre, plutôt que WHITE_BRUSH, tu devrais utiliser ceci (C'est du C++, mais en C il suffit de remplaçer par (HBRUSH):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    reinterpret_cast< HBRUSH >(COLOR_WINDOW+1)
    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.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 84
    Par défaut
    _beginthread

    permet de créer un thread
    à l'interieur vous mettez vbotre fenetre et sa gestion de message

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Pour un habitué de CreateThread(), par contre, il vaut mieux utiliser _beginthreadex().

    Mais il n'est pas forcément nécessaire de créer un nouveau thread pour la fenêtre... Si on n'a plus besoin de la console pour les entrées texte, on peut faire la boucle de messages dans le thread principal...
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fenetre mode console dans une win32
    Par had182 dans le forum Windows
    Réponses: 3
    Dernier message: 28/12/2005, 19h21
  2. Des couleurs en mode console
    Par davcha dans le forum MFC
    Réponses: 3
    Dernier message: 08/05/2004, 14h37
  3. Mode console par défaut
    Par sekiryou dans le forum Administration système
    Réponses: 5
    Dernier message: 05/03/2004, 06h38
  4. Mode console et MFC ??
    Par G3G3 dans le forum MFC
    Réponses: 7
    Dernier message: 20/02/2004, 17h49
  5. Editeur en mode console
    Par logramme dans le forum C
    Réponses: 5
    Dernier message: 11/06/2002, 13h23

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