Pb avec SetTimer pour faire une Image de demarrage
Frederyck
Messages postés62Date d'inscriptionvendredi 6 décembre 2002StatutMembreDernière intervention16 janvier 2009
-
7 févr. 2003 à 11:34
Frederyck
Messages postés62Date d'inscriptionvendredi 6 décembre 2002StatutMembreDernière intervention16 janvier 2009
-
7 févr. 2003 à 14:17
Salut,
Est ce ke quelqu'un pourrait m'éclairer un peu car je lutte...
J'ai trouvé sur Cpp france du code permettant de créer une image de demarrage qui et tres sympa d'ailleurs ( bravo Win32 !!), j'ai donc voulu l'intégrer dans ma SDI mais sans succes. (J'utilise VC++6.0 avec MFC)
J'ai donc testé de créer un boite de dialogue dans laquelle je met une image, et ensuite dans mon Initinstance avant l'ouverture de ma SDI je lance ma boite de dialogue en mode non modal. Seulement voilà je voudrai k'elle reste affichée suffisemment longtemps pour qu'on la voit et donc j'ai essayer d'utiliser la méthode setTimer mais en fait je ne comprends pas trop comment elle marche, et le msdn ne m'a pas beaucoup aidé, alors si quelqu'un peut m'aider ce serait tres sympa merci.
Voici ci dessous mon code que j'integre dans mon Initinstance
/*et ici j'essaie de fermer ma boite de dialogue à la fin du timer*/
_dlg->ShowWindow(SW_HIDE);
_dlg->CloseWindow();
ou se trouve mon (ou mes erreurs), et comment y remedier, et en fait c'est réellement le setTimer que je ne sais pas utiliser donc ce serait cool de me montrer un exemple simple
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 7 févr. 2003 à 13:05
Bonjour,
tu utilises les MFC
le plus simple est de créer ta fenêtre (on l'appelle SplashWindow) ainsi dans InitInstance de ta classe Application:
//*********************************
//Chargement de la splash window
CSplash* dlgSplash = new CSplash;
dlgSplash->Create(IDD_SPLASH,NULL);
dlgSplash->ShowWindow(SW_SHOW);
//Armement du timer de 4 secondes
UINT idTimer = dlgSplash->SetTimer(1,4000,0);
//Attente (simulation ...)
Sleep(5000);
//*********************************
ensuite tu interceptes un message WM_TIMER dans ta boite de dialogue amodale (CSplash) ainsi :
/////////////////////////////////////////////////////////////////////////////
// CSplash message handlers
void CSplash::OnTimer(UINT nIDEvent)
{//au bout de 4 secondes, l'evt timer est reçu, on tue le timer
KillTimer(1);
CDialog::OnTimer(nIDEvent);
ShowWindow(SW_HIDE);
CloseWindow();
}
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 févr. 2003 à 13:06
Salut,
je viens demettre un exemple en boite de demarrage.
Elle se ferme par un timer. Tu devras transposer en mfc.
Pourquoi tu utilises mfc, obligatoire ???
C'est tellement souple sans.
ciao...
cs_vieuxLion
Messages postés455Date d'inscriptionsamedi 26 octobre 2002StatutMembreDernière intervention 6 avril 20048 7 févr. 2003 à 13:44
re bonjour,
le mieux (avec MFC et visual C++6)
est de profiter de la gallerie qui te fournit tout ça en standard
Project/Add to Project/Components and controls/VisualC++Components/SplashScreen
et c'est tout... la classe et le code sont insérés dans ton projet
A toi de mettre l'image de ton choix
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Salut,
> >
> > Est ce ke quelqu'un pourrait m'éclairer un peu car je lutte...
> > J'ai trouvé sur Cpp france du code permettant de créer une image de demarrage qui et tres sympa d'ailleurs ( bravo Win32 !!), j'ai donc voulu l'intégrer dans ma SDI mais sans succes. (J'utilise VC++6.0 avec MFC)
> >
> > J'ai donc testé de créer un boite de dialogue dans laquelle je met une image, et ensuite dans mon Initinstance avant l'ouverture de ma SDI je lance ma boite de dialogue en mode non modal. Seulement voilà je voudrai k'elle reste affichée suffisemment longtemps pour qu'on la voit et donc j'ai essayer d'utiliser la méthode setTimer mais en fait je ne comprends pas trop comment elle marche, et le msdn ne m'a pas beaucoup aidé, alors si quelqu'un peut m'aider ce serait tres sympa merci.
> >
> > Voici ci dessous mon code que j'integre dans mon Initinstance
> >
> > CDemarrage* _dlg = new CDemarrage;
> >
> > _dlg->Create(IDD_DIALOG2,NULL);
> > _dlg->ShowWindow(SW_SHOW);
> >
> > _dlg->SetTimer(UINT nIDEvent,UINT nElapse,void(__cdecl *lpfnTimer)(HWND,UINT,UINT,DWORD))
> >
> > /*et ici j'essaie de fermer ma boite de dialogue à la fin du timer*/
> > _dlg->ShowWindow(SW_HIDE);
> > _dlg->CloseWindow();
> >
> > ou se trouve mon (ou mes erreurs), et comment y remedier, et en fait c'est réellement le setTimer que je ne sais pas utiliser donc ce serait cool de me montrer un exemple simple
> >
> > Merci d'avance :)
>
Frederyck
Messages postés62Date d'inscriptionvendredi 6 décembre 2002StatutMembreDernière intervention16 janvier 20091 7 févr. 2003 à 13:51
Salut vieuxLion,
:big) Alors là je dis MERCI MERCI GRAND GRAND GRAND et même énorme MERCI parce que d'une part tes explications sont simples et j'ai tt de suite compris , ensuite parce ke t'as répondu assez rapidement et parce ke bon ben maintenant ca marche , et mon appli d'un seul coup a plus de gueule :) .
Encore une fois MERCI !!! et à la prochaine, j'espere pouvor un jour faire quelque chose pour toi 8-)
@ +
Vous n’avez pas trouvé la réponse que vous recherchez ?