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 :

Fenêtre toujours au premier plan (CodeBlocks/SDL)


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut Fenêtre toujours au premier plan (CodeBlocks/SDL)
    Bonjour à tous ! J'aurais aimé savoir si il existe un moyen de forcer mon programme à rester au premier plan quoi qu'il arrive. Je fais mon programme avec Code::Blocks, un programme fenestré avec SDL.
    Je cherche depuis une semaine, même sur des sites de plusieurs pays différents et je n’arrive pas à obtenir satisfaction...
    J'ai trouvé les API windows, mais aucune ne marche si quelqu'un pouvait m'expliquer tout cela, ça serait sympa.
    Merci de m'avoir lu, j'attends vos réponses avec impatience
    Bonne journée
    Monpt

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Par défaut
    Citation Envoyé par Monpt Voir le message
    J'ai trouvé les API windows, mais aucune ne marche
    Tu as trouvé quoi ?

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    Beaucoup de choses, du genre ça : http://vbnet.mvps.org/index.html?code/faq/topmost.htm , http://www.vbforums.com/showthread.php?t=236577
    Je ne suis même pas sûr que ces codes soient fait pour du C...

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Par défaut
    Aïe, ca semble une bonne piste.

    C'est du code VB qui appelle l'API en C, donc c'est bon, c'est pour du C. Autant aller voir direct la fonction en question (en C)

  5. #5
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    J'avais aussi visité ce site mais je ne comprends absolument rien, en fait je dois mettre ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BOOL WINAPI SetWindowPos (
      __in HWND hWnd,
      __in_opt HWND hWndInsertAfter,
      __in int x,
      __in int Y,
      __in int cx,
      __in int cy,
      __in UINT uFlags
    );
    non ?

  6. #6
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    C'est un prototype de fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BOOL WINAPI SetWindowPos (HWND hWnd, HWND hWndInsertAfter, int x, int Y, int cx, int cy, UINT uFlags);
    Avec le deuxième paramètre optionnel. Tu trouveras à quoi correspondent les arguments sur la documentation qui suit.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  7. #7
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    Merci de ta réponse, donc si je comprends bien tout ce qui est entre parenthèses ce sont des arguments à modifier pour que ça fonctionne ?

  8. #8
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Voilà, en gros tout ce qui est entre parenthèses ce sont les paramètres que tu enverras à ta fonction. Ce peut être des variables (exemple : HWND maVariable) ou des valeurs entrées en dur (exemple : SetWindowPos(/* ... */, 17, 7, /* ... */);).
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  9. #9
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    Donc j'ai mis ça mais, la fenêtre n'est toujours pas au premier plan
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     BOOL WINAPI SetWindowPos (HWND TOPMOST, HWND hWndInsertAfter, int x, int Y, int cx, int cy, UINT uFlags);
    EDIT : sur la doc il mettent ça : (HWND) -1 dois-je m'en servir ?

  10. #10
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Tu l'appelles comment ta fonction... Faut l'appeler, hein, pas définir son prototype...
    Tu as déjà lu une page de man ?
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  11. #11
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    C'est à dire, ou mettre le nom de la fonction ? Je suis débutant moi, il faut me couper ma viande avant que je puisse la manger.
    Non je n'ai jamais lu une page de man, c'est quoi ?

  12. #12
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Bien, tu ne sembles pas habitué des pages de documentation, ce qui est finalement normal. (man = pages de documentation)

    Bon, je n'ai pas personnellement de machines de test, je n'ai jamais utilisé l'API Win de ma vie, mais j'imagine qu'il suffit d'utiliser la fonction SetWindowPos() au début de ton programme. Tu l'appelles comme ça (exemple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (SetWindowPos(pointeurDeTaFenetre, HWND_TOPMOST, 0, 0, 0, 0, FLAGS_SUPPLEMENTAIRES_SI_TU_VEUX) == 0) {
      /* traitement de l'erreur */
    } else {
      /* continuer le traitement */
    }
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  13. #13
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    Merci, et je dois remplacer "pointeurDeTaFenetre" par quoi ?

  14. #14
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Commence par voir quelques bases sur l'API Windows... Ce sera la valeur que tu récupéreras d'un appel à CreateWindow() par exemple.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  15. #15
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    Merci beaucoup, je vais regarder tout ça et je te dirai si j'ai un problème.

  16. #16
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2012
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 190
    Par défaut
    salut !
    SDL_WM_GrabInput pour SDL 1.2 et SDL_SetWindowGrab pour SDL 1.3 ...
    http://wiki.libsdl.org/moin.cgi/PageD'Accueil ou http://sdl.beuc.net/sdl.wiki/FrontPage

    A+

  17. #17
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2011
    Messages : 14
    Par défaut
    Merci je vais essayer avec ton bout de code, mais pour les liens j'ai déjà visité ces pages et je ne trouve absolument rien. Sinon, j'ai fait un code mais ça ne marche toujours pas, je ne sais pas pourquoi...
    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
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <windows.h>
     
     
    LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
     
    int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
                                                    LPSTR lpCmdLine, int nCmdShow)
    {
       HWND hwnd;
     
        WNDCLASS wc;
     
        wc.style = 0;
        //wc.lpfnWndProc = MainWndProc;
        wc.cbClsExtra = 0;
        wc.cbWndExtra = 0;
        wc.hInstance = hinstance;
        wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
        wc.hCursor = LoadCursor(NULL, IDC_ARROW);
        wc.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
        wc.lpszMenuName =  NULL;
        wc.lpszClassName = "MaWinClass";
    hwnd = CreateWindow("MaWinClass", "Titre", WS_OVERLAPPEDWINDOW,
                                       CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
                                                       NULL, NULL, hinstance, NULL);
    SetWindowPos(hwnd, HWND_TOPMOST, 1, 1, 1, 1, SWP_HIDEWINDOW);
     
    if (SetWindowPos(hwnd, HWND_TOPMOST, 1, 1, 1, 1, SWP_HIDEWINDOW) == 0)
    {
        printf("Hello erreur!\n");
    }
     
     
     
     else {
       printf("Hello world!\n");
     }
     
     
     
     
    }

Discussions similaires

  1. [Débutant] Fenêtre toujours au premier plan
    Par zlikos dans le forum Windows Forms
    Réponses: 7
    Dernier message: 03/04/2009, 18h37
  2. [MDI] fenêtre fille toujours au premier plan
    Par Invité dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/04/2007, 10h14
  3. [ VBA / EXCEL ] Fenêtre Excel au Premier Plan
    Par mike42 dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 12h55
  4. programme toujours au premier plan et background grisé
    Par avogadro dans le forum Langage
    Réponses: 5
    Dernier message: 28/03/2006, 21h46
  5. [C#][.Net] Affichage d'une appli toujours au premier plan
    Par alncool dans le forum Windows Forms
    Réponses: 9
    Dernier message: 13/07/2005, 12h30

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