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 :

[MFC] apercu de screensaver


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Par défaut [MFC] apercu de screensaver
    Bonjour
    Comme le dit mon sujet j'aimerais faire une application qui me mettrais tout les screensaver dans un list control et lorsqu il serais sélectionner il y aurais un aperçu dans une petite fenêtre du dialog. Un peu comme le fait windows.
    J’espère que vous voyer ce que je veu faire si non poster des commentaire
    Je sais comment faire pour avoir tout les screensaver dans le list control mais je ne sais pas comment faire pour afficher un aperçu du screensaver.

    si vous avez une idée de comment faire ou bien si vous avez des exemples a me donner ce serais apprécier car moi je n'ai aucune idée comment je pourrais faire ça.

    a l'avance

  2. #2
    Membre éprouvé Avatar de ken_le_videur
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 129
    Par défaut
    Hello,
    windows lance les screensavers avec 4 ou 5 modes distinct, dont config, aperçu, etc...

    Il faut que tu lance le scr en mode apercu, avec le contexte graphique ( hdc ) correspondant à la zone ou tu veut afficher l'aperçu. Et le scr dessine la dedans.

    Je vais chercher plus d'infos sur la manière de passer les paramètres, mais le principe est là.

  3. #3
    Membre éprouvé Avatar de ken_le_videur
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 129
    Par défaut
    Précision :
    Tu lance le screensaver avec la commande /p 123456789, ce chiffre étant en fait le handle de la fenêtre ( hWnd) ou tu veux que le screen s'affiche.

    Valà

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Par défaut
    je n'ai pas tres bien compris tout ce que tu a dis. Fau dire que je suis debutant en c++.
    je ne sais meme pas si jai un handler car cest une fenetre dans un dialog.
    si tu aurais un bout de code que tu pourai me montrer je serais bien content et ca m'aiderais beaucoup plus.

    a l'avance

  5. #5
    Membre éprouvé Avatar de ken_le_videur
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 129
    Par défaut
    Fais nous voir comment tu crée ta fenêtre, que je voie si tu prut recupérer ton handle de fenêtre.
    Après ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       char buffer[200];
       sprintf((char*)buffer,"c:\\WINDOWS\\system32\\sspipes.scr /p %i",(int)hWnd);
    system(buffer);

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Par défaut
    En fait j’en suis encore la. Je croyais que l'un de mes colegue aurait put m'aider la dessu mais ce n'est pas le cas.
    Je ne sais pas vraiment comment faire la fenêtre mais j'ai vue cette classe : CAnimateCtrl. Croix-tu que cela peu faire la même chose ? Si non peu tu me montrer un peu comment faire une fenêtre avec le handler ou me rediriger vers un site qui me le monterait. Moi depuis mon début dans le C++, qui n’est pas très loin (1 mois), je n’utilise que des dialog donc je suis un peu perdue.

    à l’avance

  7. #7
    mat.M
    Invité(e)
    Par défaut
    En fait j’en suis encore la. Je croyais que l'un de mes colegue aurait put m'aider la dessu mais ce n'est pas le cas.
    Je ne sais pas vraiment comment faire la fenêtre mais j'ai vue cette classe : CAnimateCtrl. Croix-tu que cela peu faire la même chose ? Si non peu tu me montrer un peu comment faire une fenêtre avec le handler ou me rediriger vers un site qui me le monterait. Moi depuis mon début dans le C++, qui n’est pas très loin (1 mois), je n’utilise que des dialog donc je suis un peu perdue.

    trouver un bon livre sur la programmation Windows et MFC d'abord.
    A Ottawa on en trouve des tas en anglais dont Programming the MFC.
    Au Québec je ne sais pas mais mieux vaut aller à Ottawa...
    Si tu utilises des CDialog , pour obtenir un DC , voilà comment procéder:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HDC hdc=CMyDlg::GetDC();
    ::SetPixel(hdc,10,10,RGB(255,0,0));
    CMyDlg::ReleaseDC();

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Par défaut
    Citation Envoyé par mat.M
    trouver un bon livre sur la programmation Windows et MFC d'abord.
    A Ottawa on en trouve des tas en anglais dont Programming the MFC.
    Au Québec je ne sais pas mais mieux vaut aller à Ottawa...
    Si tu utilises des CDialog , pour obtenir un DC , voilà comment procéder:
    Merci je vais aissayer de me procurer ce livre si tu en a dautre a proposer sur le C++, MFC, et programation window tu peu me les envoyer par e-mail svp

    maintenent j'ai 2 erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ->  HDC hdc = CPartiegestionDlg::GetDC();
        ::SetPixel(hdc,10,10,RGB(255,0,0));
    ->> CPartiegestionDlg::ReleaseDC();
    -> error C2440: 'initializing' : cannot convert from 'class CDC *' to 'struct HDC__ *'
    ->> error C2660: 'ReleaseDC' : function does not take 0 parameters

    je ne sais pas si cest le code que tu ma envoyer ou bien moi qui cause ces erreur mais pouvez vouis me dire commen les regler svp

    a l'avance

  9. #9
    Membre éprouvé Avatar de ken_le_videur
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 129
    Par défaut
    Hop hop hop;
    mon premier post était erroné. Il s'agit bien d'un handle de fenêtre qu'il faut.
    Je te filerai un peu de code ce soir pour te montrer. Tu as quelle version de VC++ ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Par défaut
    Citation Envoyé par ken_le_videur
    Hop hop hop;
    mon premier post était erroné. Il s'agit bien d'un handle de fenêtre qu'il faut.
    Je te filerai un peu de code ce soir pour te montrer. Tu as quelle version de VC++ ?
    ma version de VC++ est 6.0

    merci a tout de repondre a mes questions

  11. #11
    Membre éprouvé Avatar de ken_le_videur
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 129
    Par défaut
    Dommage j'ai la v7, je te l'envoie par mail, tu verra ce que tu peut faire avec.
    En gros, tu crée un projet avec une CDialog. Dans le OnInitDialog de cette dialog, tu ajoute ça :
    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
     m_preview.Create(IDD_PREVIEW);
      	m_preview.ShowWindow(SW_SHOW);
    	m_preview.SetParent(this);
      m_preview.SetWindowPos(0,50,50,200,200,0);
     
         char buffer[200];
         sprintf((char*)buffer,"D:\\WINDOWS\\system32\\sspipes.scr /p %i",(int)m_preview.m_hWnd);
         //sprintf((char*)buffer,"/p %i",(int)m_preview.m_hWnd);
    //   ShellExecute(hWnd, "open",  "D:\\WINDOWS\\system32\\screenpreview.scr", (LPSTR)buffer, NULL, SW_SHOWNORMAL);*/
     
        STARTUPINFO si;
        PROCESS_INFORMATION pi;
     
        ZeroMemory( &si, sizeof(si) );
        si.cb = sizeof(si);
        ZeroMemory( &pi, sizeof(pi) );
     
        // Start the child process. 
        if( !CreateProcess( NULL, // No module name (use command line). 
            buffer, // Command line. 
            NULL,             // Process handle not inheritable. 
            NULL,             // Thread handle not inheritable. 
            FALSE,            // Set handle inheritance to FALSE. 
            0,                // No creation flags. 
            NULL,             // Use parent's environment block. 
            NULL,             // Use parent's starting directory. 
            &si,              // Pointer to STARTUPINFO structure.
            &pi )             // Pointer to PROCESS_INFORMATION structure.
        )
    Et ca dans le point h:

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Par défaut
    Merci bien pour ce bou de code code mais j’ai un problème avec. Le dialog n’apparaît pas.

    Il me reste quelque problème. Je voudrais que le preview apparaisse dans la fenêtre, ou quoi que ce soit d'autre, d'un dialog déjà existant lorsque je choisi un screensaver dans un list control; un peu comme le fait Windows

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 3
    Dernier message: 31/01/2005, 15h22
  3. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58
  4. Réponses: 2
    Dernier message: 10/06/2002, 11h03
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    Réponses: 3
    Dernier message: 10/06/2002, 07h36

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