Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    [C++ api notifica del messaggio NM_RETURN]

    NM_RETURN dovrebbe notificare alla parent windows del controllo che questo ha l'imput focus ed è stato premuto ENTER.
    A me non funziona, vorrei intercettare quando si preme l'invio su un edit.

    questo è il pezzo del codice utilizzato:


    case WM_NOTIFY:
    NMHDR* pNMHDR = (NMHDR *)lParam;
    if(pNMHDR->code == NM_RETURN) {
    MessageBox(hwndDlg, "Invio!", "Avviso", MB_OK);
    }


    dove è che sbaglio o esiste metodo migliore?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    ... oppure intercettare VK_RETURN ma come non mi va neppure questo ... potete darmi delle dritte?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    ... potete verificare almeno il codice ???

  4. #4
    Guarda, anch'io quest'estate ho litigato per diversi giorni con il WM_NOTIFY senza venire a capo di niente e alla fine mi sono risolto ad adottare un'altra soluzione...
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    Originariamente inviato da MItaly
    Guarda, anch'io quest'estate ho litigato per diversi giorni con il WM_NOTIFY senza venire a capo di niente e alla fine mi sono risolto ad adottare un'altra soluzione...

    il mio obiettivo è quello di far aprire una popup quando viene premuto enter nel campo (edit) e non vedo quale sia una
    soluzione alternativa ad WM_NOTIFY ... hai suggerimenti in merito???

    pensa che in un tab control con WM_NOTIFY intercetto i tasti del mouse, mentre in un listwiew i click sulla riga e
    la colonna e funziona benissimo ... ma perchè in un edit non funziona ?????

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    ... potete verificare ...????

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    ... aiuto ... come pensate possa far aprire una child su un edit control pressando return?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    ... ritorniamo a galla con questo problema, anche se scrivo:

    NMHDR* pnmh = (LPNMHDR) lParam;
    if (pnmh->code == (UINT)NM_RETURN) {
    ...

    non intercetto l'invio in un campo edit !!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    16
    Di solito le edit non catturano il message di return... Devi provare a modificare lo stile della EDIT aggiungendo ES_WANTRETURN :master:

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    Originariamente inviato da CyberPro
    Di solito le edit non catturano il message di return... Devi provare a modificare lo stile della EDIT aggiungendo ES_WANTRETURN :master:
    ... ma ES_WANTRETURN è impiegato per i multiline edit control e non questo stile non ha effetto su un single-line edit control

    ... ed allora come si cattura NM_RETURN che secondo le sdk:

    The NM_RETURN notification message notifies the parent window of a control that the control has the input focus and that the user has pressed the ENTER key. NM_RETURN is sent in the form of a WM_NOTIFY message.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.