begin process at 2012 05 29 06:37:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Evenement touche presse sur edit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Evenement touche presse sur edit

dimanche 25 mars 2007 à 11:54:41 | Evenement touche presse sur edit

NairodDorian

Bonjour,

Je rencontre un petit blocage avec l'API Win32.

BOOL CALLBACK AppDlg(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)

{

switch (msg) {

case WM_INITDIALOG:

SetClassLong(hdlg, GCL_HICON, (LONG)LoadIcon(NULL, IDI_APPLICATION));

SetDlgItemInt(hdlg, IDC_EDIT_CM, 18, FALSE);

return TRUE;

case WM_COMMAND:

switch (LOWORD(wparam)) {

/* Analyse des menus */

case ID_APPLICATION_QUITTER:

case IDCANCEL:

EndDialog(hdlg, 0);

return TRUE;

case ID_RESULTAT_NETTOYER:

if (MessageBox(hdlg, TEXT("Voulez vous supprimer toute votre configuration ?"),

TEXT(

"Question"), MB_YESNO | MB_ICONQUESTION) == IDYES) {

/* Supprime toute la configuration utilisateur */

SetDlgItemInt(hdlg, IDC_EDIT_CM, 18, FALSE);

SetDlgItemText(hdlg, IDC_EDIT_MAX, NULL);

SetDlgItemText(hdlg, IDC_EDIT_VALUE, NULL);

SendDlgItemMessage(hdlg, IDC_LIST_VALUE, LB_RESETCONTENT, 0, 0);

SendDlgItemMessage(hdlg, IDC_LIST_RESULT, LB_RESETCONTENT, 0, 0);

break;

}

break;

}

case WM_KEYDOWN:

if (LOWORD(wparam) == IDC_EDIT_VALUE) {

/* Recupere le code de la touche */

switch (wparam) {

case VK_LEFT:

/* NE FAIT RIEN */

break;

default:

/* blabla */

}

}

break;

default:

return FALSE;

}

return FALSE;

}

int

APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)

{

DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_APP), NULL, (DLGPROC)AppDlg, 0);

return 0;

}

Je cherche a recupere l'evenement WM_KEYDOWN correspondant au controle IDC_EDIT_VALUE.
Je teste alors si la touche presse est la fleche de gauche mais ca ne fonctionne jamais !

Pouvez vous m'aider ?
Merci d'avance

dimanche 25 mars 2007 à 12:38:55 | Re : Evenement touche presse sur edit

racpp

Administrateur CodeS-SourceS
Réponse acceptée !
Salut,
Tu peux sous-classer ton Edit:

WNDPROC OldEditProc;

LRESULT CALLBACK EditProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
    case WM_GETDLGCODE:
        return (DLGC_WANTALLKEYS |  CallWindowProc(OldEditProc, hwnd, message,   wParam, lParam));

    case WM_KEYDOWN:
        MessageBox(0,TEXT("Touche pressée"),0,0);
        break;
    }

    return CallWindowProc(OldEditProc, hwnd, message, wParam, lParam);
}


BOOL CALLBACK AppDlg(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)

{
    switch (msg)
    {
    case WM_INITDIALOG:
        HWND hEdit;
        hEdit=GetDlgItem(hdlg, IDC_EDIT_VALUE);
        OldEditProc=(WNDPROC)SetWindowLong(hEdit, GWL_WNDPROC,(LONG)EditProc);
        SetClassLong(hdlg, GCL_HICON, (LONG)LoadIcon(NULL, IDI_APPLICATION));
        SetDlgItemInt(hdlg, IDC_EDIT_CM, 18, FALSE);
        return TRUE;
    }
    //.....
}

L'événement de pression sur une touche est donc récupéré dans la procédure de sous-classement EditProc().

dimanche 25 mars 2007 à 13:04:53 | Re : Evenement touche presse sur edit

NairodDorian

Impecable merci beaucoup !


Cette discussion est classée dans : case, edit, hdlg, wparam, idc


Répondre à ce message

Sujets en rapport avec ce message

faire progresser....une progress bar !! [ par Xs ] c tout bete, mais je sais pas comment faire. ou plutot lui dire a quoi comparer sa progression par rapport au chargement de quelque chose.mon code : # objet non initialisé (API Win32) [ par Xs ] salut !voici mon code, d'abord :#include #include #include "resource.h"LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){cha positions [ par Xs ] salut ! je cherche et je trouve pas, ou alors je sais pas m'en servir, comment on recupere la position actuelle du fenetre(dialogbox).j'ai essayé des touches [ par Xs ] voila, j'ai essayé de tester des touches afin que, par exemple, lorsque l'on appuie sur Y, une message box apparaisse.j'ai recupérer ce code venat de ChooseColor bloqué ? [ par NeKoF ] Salut tous le monde !J'ai un gros soucis ma boite de dialogJe vous explique :Dans ma boite de configuration, je souhaite sélectionner une couleur en c encore un pb de timer!!!!! [ par melkiorlenecrarque ] je souhaite, en appuyan sur un boutton, declancher un timer ki ajoute a chak seconde une unité au caption de ce meme bouton mé sa marche pa!!!voici mo Bouton fermer [ par PsyCaDi ] Je viens de créer un projet en VC6 et lorsque j'ai lancé la fenêtre, la croix rouge pour fermer, ne sert à rien.Idem si je fait clique droit et Fermet pb affichage ComboBox dans Dialog [ par Guillemouze ] Salut tout le monde,j'ai un souci d'affichage de mon combo dans un dialog. Quand je click sur la fleche pour afficher la liste, il ne m'affiche rien!P Gros problème dans une dialogbox [ par julien_boss ] Luu à tous :voilà alors je ne comprends pas bien ce qui se passe : j'ai une boite de dialogue, 2 EDITTEXT qui se suivent dans leur création (je ne sai Prise en charge des tabulations [ par SAKingdom ] Allo.Ceci est pour les membres club uniquement.Quand on clique sur la petite loupe à droite d'un fichier dans un zip, il ouvre une fenêtre individuell


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales