Explic DoEvents

cs_ikan Messages postés 30 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 17 février 2009 - 19 nov. 2005 à 00:12
cs_ikan Messages postés 30 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 17 février 2009 - 20 nov. 2005 à 07:48
bsr a ts :
je suis débutant au niveau de la programmation vb ...
j'aimes bien savoir keske ça vt dire "doevents"et a koi ça sert..
salutations

simo

3 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 nov. 2005 à 01:13
salut,
mis à part que si tu aimes bien savoir, alors il aurait fallut utiliser le moteur de recherches plutôt que le lien "poster".....
DoEvents demande à VB (pour le coup...) de faire(do) les évènements(events) qui ne sont pas les siens ; donc redonne la main au système pour qui fasse son job et donc que l'explorer ne crash pas.
utilisé dans les grosses boucles essentiellement.
@+
PCPT [AFCK]
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 nov. 2005 à 09:58
Actions accomplies par DoEvents (grosso modo):

If PeekMessage(...) Then
TranslateMessage(...)
DispatchMessage(...)
TRAITER REPAINT ET AUTRE
End If

EXPLICATION rapide:
Le système envoie des messages sur la pile du thread primaire du prog pour tout event, que soit matériel (comme clavier ou souris) ou logiciel comme besoin de repaint par exemple. Ces messages sont sous la forme de 7 params 32 bits (sur win32) qui forment une structure MSG.
- PeekMessage vériefie la présence d'un message et remplit une structure MSG.
- TranslateMessage réinterprètera, si c'est le cas, les codes claviers VK_xxx en codes caractères et leur refera faire un tour en WM_CHAR.
- DispatchMessage enverra les messages vers les windProc de chaque fenêtre pour traitement.

Les events récupérés par DoEvents sont donc bien les 'siens', il est tout à fait impossible sur un système moderne qu'un prog en mode user intervienne sur l'espace mémoire d'un autre prog.
A noter également que c'est le prog qui ne traite pas ses messages qui risque le plantage et non explorer ou quelque autre. Comme il est coutume de dire en info comme ailleurs "à chacun sa m**de".

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
cs_ikan Messages postés 30 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 17 février 2009
20 nov. 2005 à 07:48
Merci encore

simo
0
Rejoignez-nous