Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1735 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  FlashWindowEx (Clignotement de la fenetre)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

FlashWindowEx (Clignotement de la fenetre)

n°441056
gooopil
pfiew
Posté le 27-06-2003 à 00:37:17  profilanswer
 

Hello
 
Je crois que tout est dans le titre, comment je peux faire pour faire ca ? (VC++, MFC)
 
Merci


Message édité par gooopil le 27-06-2003 à 21:39:28
mood
Publicité
Posté le 27-06-2003 à 00:37:17  profilanswer
 

n°441079
gatorette
Posté le 27-06-2003 à 01:09:05  profilanswer
 

Tu veux parler des fonctions FlashWindow et FlashWindowEx ?


Message édité par gatorette le 27-06-2003 à 01:09:22

---------------
each day I don't die is cheating
n°441081
gooopil
pfiew
Posté le 27-06-2003 à 01:12:24  profilanswer
 

gatorette a écrit :

Tu veux parler des fonctions FlashWindow et FlashWindowEx ?


 
OUI :D
 
Merci

n°442285
gooopil
pfiew
Posté le 27-06-2003 à 21:47:25  profilanswer
 


Au départ je voulais utiliser la fonction FlashWindowEx du sdk windows. Après installation d'une mise à jour du sdk, pas de problème et vc++ reconnait bien la fonction. Puis j'ai eu des pb pour remplir la structure FLASHWINFO. Je faisais  

Code :
  1. FLASHINFO *f;
  2. f->hwnd = ....


Et ca me fait une erreur d'écriture mémmoire à l'exécution....
 
 
Comme j'y arrivais pas comme ca, je me suis lancé ds une petite recherche. Sur le site msdn, je suis tombé sur la même fonction FlashWindowEx mais appartenant cette fois à la classe CWnd...Mais ds vc++,

Code :
  1. (AfxGetMainWnd())->FlashWindowEx(FLASHW_TIMERNOFG,0,0);


me renvoie :  
 
E:\CM ar\chatter\Chatdoc.cpp(366) : error C2039: 'FlashWindowEx' : is not a member of 'CWnd'
 
e:\microsoft visual studio\vc98\mfc\include\afxwin.h(1899) : see declaration of 'CWnd'  
 
alors que http://msdn.microsoft.com/library/ [...] ndowex.asp
...
 

n°442350
antsite
Je me souviens
Posté le 27-06-2003 à 23:23:48  profilanswer
 

et bien t'essaye ça ::FlashWindowEx();

n°442392
*syl*
--> []
Posté le 28-06-2003 à 00:42:59  profilanswer
 

Gooopil a écrit :


Code :
  1. FLASHINFO *f;
  2. f->hwnd = ....


Et ca me fait une erreur d'écriture mémmoire à l'exécution....

Et l'allocation mémoire ?  :sarcastic:

n°442402
Fullblaste​r
Posté le 28-06-2003 à 01:03:12  profilanswer
 

C pour faire beau c bien connu ;)

n°442509
gooopil
pfiew
Posté le 28-06-2003 à 12:51:40  profilanswer
 

ANTSite a écrit :

et bien t'essaye ça ::FlashWindowEx();


 
Comme ca j'accede à la fonction du SDK ?

n°442511
gooopil
pfiew
Posté le 28-06-2003 à 12:52:35  profilanswer
 

*Syl* a écrit :

Et l'allocation mémoire ?  :sarcastic:  


 
cad ? C'est beau de se moquer mais pourquoi ne pas me dire ce qu'il faut faire...Je fais un new ?

n°442532
R3g
fonctionnaire certifié ITIL
Posté le 28-06-2003 à 13:25:53  profilanswer
 

Gooopil a écrit :


 
cad ? C'est beau de se moquer mais pourquoi ne pas me dire ce qu'il faut faire...Je fais un new ?


Code :
  1. FLASHINFO f;
  2. f.hwnd = ....

mood
Publicité
Posté le 28-06-2003 à 13:25:53  profilanswer
 

n°442536
VisualC++
J'va y penser ...
Posté le 28-06-2003 à 13:44:41  profilanswer
 

Gooopil a écrit :


 
cad ? C'est beau de se moquer mais pourquoi ne pas me dire ce qu'il faut faire...Je fais un new ?


 
Euh faut vraiment repondre (c pas une moquerie te rassure) mais bon tu fait Toto* pToto et puis un pToto->xxx ... ca te choque pas le moins du monde ?
 

n°442537
Ace17
Posté le 28-06-2003 à 13:48:14  profilanswer
 

Au lieu de jouer les étonnés expliquez lui!
 
Gooopil , sais tu ce que c'est un pointeur?

n°442580
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-06-2003 à 14:54:20  profilanswer
 

Bon, Gooopil, tu as 2 problèmes :
 
- D'abord tu n'alloues pas la mémoire pour ta structure FLASHINFO.
- Ensuite tu l'utilise en tant que membre de CWnd alors que c'est une fonction du SDK, donc faisant partie du namespace global.
 
Pour la 1ere erreur : tu dois allouer la mémoire pour ta structure FLASHINFO. Pas besoin de passer par une allocation dynamique pour ça, une simple allocation statique suffit :
 
 

Code :
  1. FLASHINFO fi;
  2. fi.cbSize = sizeof(struct FLASHINFO);
  3. fi.hwnd = xxxx; // HWND de la fenêtre que tu veux flasher
  4. fi.dwFlags = xxxx; // Flags
  5. fi.uCount = xxxx; // nombre de fois ou la fenêtre clignotera
  6. fi.dwTimeCount = xxxx; // ratio de flashage en millisecondes


 
Puis tu passes cette structure en paramètre à FlashWindowEx. Mais tu dois passer l'adresse de cette structure, et pas la structure elle même :
 

Code :
  1. ::FlashWinwowEx(&fi);


 
2ème problème : pourquoi ::FlashWindowEx() et pas FlashWindowEx() ? Car tu travailles en MFC, donc en conception objet. Ce qui signifie que chaque méthode que tu appelleras sera supposée appartenir à une classe, ce qui n'est pas le cas de FlashWindowEx(), qui est une fonction appartenant au namespace global (donc qui n'est une méthode d'aucune classe). D'où les 2 points. Si tu ne les mettais pas, ça voudrait dire que tu appelles FlashWindowEx en tant que méthode membre de l'objet que tu utilises.


---------------
J'ai un string dans l'array (Paris Hilton)
n°442614
gooopil
pfiew
Posté le 28-06-2003 à 16:12:13  profilanswer
 

VisualC++ a écrit :


 
Euh faut vraiment repondre (c pas une moquerie te rassure) mais bon tu fait Toto* pToto et puis un pToto->xxx ... ca te choque pas le moins du monde ?
 


 
Ben un peu....mais pas tant que ca en fait....
 
Pour répondre à Harko : Ensuite tu l'utilise en tant que membre de CWnd alors que c'est une fonction du SDK, donc faisant partie du namespace global,  
Il y a deux fonctions Flash....(), une du SDK, et une autre MFC dans CWnd. CF http://msdn.microsoft.com/library/ [...] ndowex.asp  
 
Mais bon de toutes facons, vu que j'aurais plus de problème avec l'allocation, j'aurais pas besoin d'utiliser celle des MFC, je me débrouillerais avec celle du SDK.
 
 

n°442620
gooopil
pfiew
Posté le 28-06-2003 à 16:25:23  profilanswer
 

Pendant que j'y suis, si j'avais voulu déclaré une variable :
 
machin * x.  
 
J'alloue comment la mémmoire ? Si c'est une classe je ferais  
machin *x = new machin();
 
Mais si c'est pas une classe ?
 
 
En gros si quelq'un pouvait m'expliquer très briévement allocation statique et dynamique ca serait géniale. J'ai fait un iut info y'a qq années et je me suis remis à la programmation, du coup certaines subtilités (notemment au niveau des pointeurs) ont disparu de ma petite cervelle....

n°442735
Ace17
Posté le 28-06-2003 à 19:23:14  profilanswer
 

Gooopil a écrit :


J'alloue comment la mémmoire ? Si c'est une classe je ferais  
machin *x = new machin();


 
plutot :
 
machin *x = new machin;
 
et si c'est un int, par exemple :
 
int *x = new int;
 
En C++ un type de base ne se distingue pas d'un type utilisateur.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  FlashWindowEx (Clignotement de la fenetre)

 

Sujets relatifs
[HTML] Newb: image dans une autre fenêtrelien vers nouvelle fenetre sans menu, comme une popup ...
Confirmer la fermeture d'une fenetre[OpenGL]Pourquoi ai je une fenetre grise !!! [résolu]
[JS]Fenêtre interne et scrollingprobleme a la compilation pour afficher une fenetre avec SDL et opengl
[C/C++] comment avoir une fonction callback par fenetre ?[HTML & script] Garder une fenetre en premier plan
[VC++6] Afficher un message dans une fenêtre de débogageouvrir un pop up par un formulaire -> redimmensionner une fenetre
Plus de sujets relatifs à : FlashWindowEx (Clignotement de la fenetre)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR