4ndr&@lphu$bien encore une fois voilà mon code définitif :
LRESULT CALLBACK dialogProc4(HWND hDlg, UINT Umess, WPARAM wParamD, LPARAM lParamD)
{
int m_IdTimer=0; // ID du SetTimer ds EnrTimerProc
char buff[8]; // on y stocke le nom de la machine récupérée ds la fenêtre
char ID_machine[11]="ID_";// on y stocke le nom de la clé pour l'ID du Timer
switch (Umess)
{
case WM_INITDIALOG:
{SetWindowText(hDlg, machine_select);
//carte_A1010(hDlg);
m_IdTimer = SetTimer(hDlg, (UINT) hDlg, 5000, ENRTimerProc);
char ID_machine[11]="ID_";
strcat(ID_machine, machine_select);
regNbrWrite(m_IdTimer, CLE_MACHINE, ID_machine);
}
break;
case WM_COMMAND:
switch(LOWORD(wParamD))
{
case IDC_ACTION:
{GetWindowText(hDlg,buff,strlen(buff));
strcat(ID_machine,buff);
regNbrRead(&m_IdTimer, CLE_MACHINE, ID_machine);
KillTimer(hDlg, m_IdTimer);}
EndDialog(hDlg, IDC_ACTION);
break;
}
break;
default:
return (FALSE);
}
return (TRUE);
}
/**********************************************************
procédure pour SetTimer de dialogProc4, on écrit ds la base
***********************************************************/
void CALLBACK ENRTimerProc(HWND hEnr, UINT uMsg, UINT idEvent, DWORD dwTime)
{
char buff[8]; //buffer pour récupérer le nom de la machine ds dialogbox
HWND hDlg=(HWND) idEvent;
GetWindowText(hDlg, buff, strlen(buff));
base_de_donnees(hDlg, buff);
}
/***********************************************/
LE PROBLEME : au début ds WM_INITDIALOG, je passe en paramètres paramètre la varible machine_select. Cette varible est une chaîne de caractère.
et bien le truc qui est hallucinant c'est que si cette chaîne vaut: "2500T1", "2500T3" ou "2500T4" ca marche bien... en revanche si c'est "2500T2"...bah au lieu d'exécuter la fonction base_de_donnees toutes les 5 sec, il l'éxecute en boucle à fond jusqu'au plantage !!!!
Si quelqu'un peut éclairer ma lanterne...
Moi en attendant je vais chercher Mulder...!
@+