Fonction avec "attente"

Messages postés
112
Date d'inscription
lundi 17 septembre 2012
Statut
Membre
Dernière intervention
11 juin 2016
-
Salut à tous,

je travaille en c++ sur une dll est j'aurai besoin de votre aide,
je vous explique :

donc la dll fonctionne simplement avec des commandes sous "GetAsyncKeyState"
chaque fois que la touche spécifique est appuyer alors la commande définit se valide, je souhaiterai ajouter un "logs" lorsque la commande est valider selon sont status écrire par exemple :

"Commande 1 : ON" ou "Commande 1 : OFF"

Sa c'est bon, je sais écrire comme je veut, la pas de soucis, donc je donne pas de code se côté la, je vous explique juste!


Voila maintenant que j'ai mes commandes, et que j'arrive a écrire sur le programme : activé ou non. je souhaiterai ajouter un délais d'affichage au log lorsque la commande est validé, voila ou j'en suis :


bool Cmd1 = false;
bool ShowLog = false;

const char* LogCommdsText;


void MafonctionPrincipale() // Fonction qui est appeller en boucle infinit
{

// Gestion des touches

if (GetAsyncKeyState(VK_F1))
{
Cmd1 = !Cmd1; // Activation / Désactivation de la commande 1

// Gestion du log
if(Cmd1)
{
LogCommdsText = "Command 1 : ON"
}
else
{
LogCommdsText = "Command 1 : OFF"
}

ShowLog = true; // Déclanchement de l'affichage du log
}

////////////////////////////////////////////////////////////////


// Gestion des commandes

if(Cmd1) // Cmd1 Activé
{
//.......
//.......
//.......
}


////////////////////////////////////////////////////////////////

// Gestion du logs

if(ShowLog)
{
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MaFonctionLogs, NULL, 0L, NULL);
ShowLog = false;
}


}

void MaFonctionLogs(RGBA_COLOR_t *Color) // Affichage du log pendant 5 secondes
{
int i = 0;
unsigned long int max = 5000 * 100000;
do {
// Affichage
base->DrawText(10, 100, Color, LogCommdsText);


i++;
}
while(i <= max);
}


Voila à quoi cela ressemble.. un sleep paralyse l'application durant les 5 sec, avec une boucle pareil, actuellement le prog crash, comme vous voyez j'ai essayer avec un thread du coup pour pas paralyser l'application mais j'ai du mal a l'utilisé...

si quelqu'un peut m'aider, merci

Valentin.
Afficher la suite