Détecter CTRL+V [Résolu]

Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015
- - Dernière réponse : mogwai93
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015
- 9 oct. 2011 à 21:29
Bonjour

j'aimerais savoir s'il est possible de détecter sur un champ edit
si le texte rentré vient "du clavier" ou s'il vient d'un copier coller (ctrl+V ou menu contextuel clic droit+coller)

J'arrive à détecter l'appui sur Ctrl ou sur V, mais pas la combinaison
et pour le clic droit "coller" : aucune idée


merci
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
3
Merci
Pour hooker tout ce qui se passe dans un controle, EDIT ou autre, on le sous classe.

Exemple minimaliste qui interdit le copier-coller.

HWND hNBR = 0;
WNDPROC oldFloatProc = 0;

LRESULT CALLBACK ProcEdFloat(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  //if(mssg == WM_CHAR) TonCodePourWM_CHAR();
  if(mssg == WM_PASTE) return 0;
  return CallWindowProc(oldFloatProc, hwnd, mssg, wParam, lParam);
}

INT_PTR AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  switch(mssg) {
    case WM_INITDIALOG:
      SetClassLongPtr(hdlg, GCLP_HICON, (LONG_PTR) LoadIcon(0, IDI_APPLICATION));
      hNBR = GetDlgItem(hdlg, IDED_NBR);
      SendMessage(hNBR, EM_LIMITTEXT, 23, 0);
      oldFloatProc = (WNDPROC) SetWindowLongPtrA(hNBR, GWLP_WNDPROC, (LONG_PTR) ProcEdFloat);
      return 1;
    case WM_COMMAND:
      switch(wParam) {
        case IDOK:
          onOK();
          return 0;
        case IDCANCEL: EndDialog(hdlg, 0);
      }
  }
  return 0;
}


ciao...
BruNews, MVP VC++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015
0
Merci
merci

j'avais bien sous classé mon edit
il me manquait juste le WM_PASTE
Commenter la réponse de mogwai93