Probleme de gestion de clavier win32

fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012 - 7 août 2004 à 13:33
fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012 - 17 août 2004 à 23:11
bonjour,

Alors voila je m explique , je fait un logiciel de mix audio tyoe mixman studion pour ceux qui connaissent ... le principe de ce soft est d attribue un sample audio a une touche de clavier pour jouer ensemble tout un tas de sample et faire des bo mix ;) .

Faisant du dx depuis 2 ans, je m etais dit qu il y avait suremment moyen de faire du win32 sans passer par direct input ( que je trouve relou ) et de n utiliser que directx pour l audio. donc je commence a faire ma boucle de msg windows etc, et pis bah la gros probleme :

ma reception des msg WM_KEYDOWN ET WM_KEYUP ne marche pas : je fais des case 'E' (par ex) et rien ne se passe je suis super decu ... voici donc ma boucle des msg :

LRESULT CALLBACK MainProc(HWND Dlg, UINT message, WPARAM wParam, LPARAM lParam)
{
int select;
// int clavier;
// char buff[500];
HWND liste = NULL;

switch ( message )
{
case WM_COMMAND:
select = LOWORD(wParam);
switch (select)
{
case IDEXIT:
file->final_close();
EndDialog(Dlg, 0);
return TRUE;
case PLAYQ:
if ( (file->Loading_File()) == 0 )
{
file->Playing_File();
SetDlgItemText( Dlg, TITLEQ, (LPCSTR)file->samplelist );
SetDlgItemText( Dlg, PLAYQ, (LPCSTR)"Running");
HWND liste = GetDlgItem( Dlg, LISTE);
SendMessage( liste, LB_ADDSTRING, 0, (LPARAM)file->samplelist);
}
return TRUE;
}
case WM_KEYDOWN:
switch ( wParam )
{
case 'E':
SendMessage( liste, LB_ADDSTRING, 0, (LPARAM)file->samplelist);
return TRUE;
}
case WM_KEYUP:
switch (wParam )
{
case 'E':
file->final_close();
EndDialog(Dlg, 0);
return TRUE;
}

default:
return FALSE;
}

}

5 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
7 août 2004 à 15:44
Salut,
Les wParam des messages WM_KEYDOWN et WM_KEYUP ne contient pas le code ASCII de la touche, mais le Virtual-Key Code de celle ci.
Voir MSDN pour avoir la listes de ces codes.
0
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
7 août 2004 à 17:30
Utilise plutot WM_CHAR .
0
fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012
7 août 2004 à 18:48
ah ok merci ...

une derniere question :

avec WM_CHAR c un truc du style :

case WM_KEYDOWN :
switch ( wParam )
{
case WM_CHAR:
}

ou alors c un WM_CHAR sur UINT message ???
0
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
7 août 2004 à 22:09
oui comme tu le dis, c'est un WM_CHAR sur UINT message.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012
17 août 2004 à 23:11
bon ca y est ca marche ( oui je sais c long mais j etais parti en vacs sur une ile .... )

le truc c ke moi je veux joiuer du son ke si la touche est enfonce et ke ca stoppe direct si la touche est relache

donc pour ca il me semble kil faut utiliser wm_keydown et wm_keyup no

++
0
Rejoignez-nous