Condividi tramite


Metodo ITextHost::TxNotify (textserv.h)

Notifica all'host di testo di vari eventi.

Sintassi

HRESULT TxNotify(
  [in] DWORD iNotify,
  [in] void  *pv
);

Parametri

[in] iNotify

Tipo: DWORD

Evento da notificare all'host. Uno dei codici di notifica EN_ .

[in] pv

Tipo: void*

Dati aggiuntivi, dipendenti da iNotify.

Valore restituito

Tipo: HRESULT

Restituisce S_OK se il metodo ha esito positivo.

Restituisce S_FALSE se il metodo ha esito negativo. Per altre informazioni sui codici di errore COM, vedere Gestione degli errori in COM.

Commenti

Si noti che sono presenti due categorie di base di eventi, diretta e ritardata . Gli eventi diretti vengono inviati immediatamente perché necessitano di un'elaborazione, ad esempio EN_PROTECTED. Gli eventi ritardati vengono inviati dopo che si è verificata tutta l'elaborazione; il controllo è quindi in uno stato stabile. Esempi di notifiche ritardate sono EN_CHANGE, EN_ERRSPACE e EN_SELCHANGE.

Gli eventi di notifica sono uguali ai codici di notifica inviati alla finestra padre di una finestra di modifica avanzata. L'attivazione di eventi può essere controllata con una maschera impostata tramite il messaggio di EM_SETEVENTMASK .

In generale, è legale effettuare chiamate all'oggetto servizi di testo durante l'elaborazione di questo metodo; tuttavia, gli implementatori sono avvisati di evitare ricorsioni eccessive.

Di seguito è riportato un elenco delle notifiche che possono essere inviate.

Notifica Significato
EN_CHANGE Inviato dopo che il sistema aggiorna la schermata, quando l'utente esegue un'azione che potrebbe aver modificato il testo nel controllo.
EN_DROPFILES Inviato quando viene ricevuta una notifica di WM_DROPFILES o IDropTarget::D ragEnter .
EN_ERRSPACE Inviato quando un controllo non può allocare memoria sufficiente per soddisfare una richiesta specificata.
EN_HSCROLL Inviato quando l'utente fa clic sulla barra di scorrimento orizzontale del controllo prima dell'aggiornamento dello schermo.
EN_KILLFOCUS Inviato quando il controllo perde lo stato attivo della tastiera.
EN_LINK Inviato quando un controllo di modifica avanzato riceve vari messaggi, ad esempio i messaggi di clic del mouse, quando il puntatore del mouse è sul testo che ha l'effetto CFE_LINK.
EN_MAXTEXT Inviato quando l'inserimento del testo corrente ha superato il numero massimo di caratteri per il controllo.
EN_OLEOPFAILED Inviato quando un'azione dell'utente in un oggetto OLE non è riuscita.
EN_PROTECTED Inviato quando l'utente esegue un'azione che modifica l'intervallo protetto di testo.
EN_REQUESTRESIZE Inviato quando il contenuto di un controllo di modifica avanzato è diverso dalle dimensioni della finestra del controllo.
EN_SAVECLIPBOARD Inviato quando viene eliminato un controllo di modifica. L'host di testo deve indicare se è necessario chiamare OleFlushClipboard . I dati che indicano il numero di caratteri e oggetti da scaricare vengono inviati nella struttura di dati ENSAVECLIPBOARD . Il valore mask non è niente.
EN_SELCHANGE Inviato quando la selezione corrente è stata modificata. Viene inviata anche una struttura di dati SELCHANGE , che indica che il nuovo intervallo di selezione al tipo di dati che la selezione è attualmente in corso. Controllato attraverso la maschera di ENM_SELCHANGE .
EN_SETFOCUS Inviato quando il controllo di modifica riceve lo stato attivo della tastiera. Non vengono inviati dati aggiuntivi; non c'è maschera.
EN_STOPNOUNDO Inviato quando si verifica un'azione per cui il controllo non può allocare memoria sufficiente per mantenere lo stato di annullamento. Se S_FALSE viene restituito, l'azione verrà arrestata; in caso contrario, l'azione continuerà.
EN_UPDATE Inviato prima che un controllo di modifica richieda un ridisegno di dati o testo modificati. Non vengono inviati dati aggiuntivi. Questo evento viene controllato tramite la maschera di ENM_UPDATE . Modifica avanzata 2.0 e versioni successive: La maschera ENM_UPDATE viene ignorata e viene sempre inviato il codice di notifica EN_UPDATE . Tuttavia, quando Microsoft Rich Edit 3.0 emula Microsoft Rich Edit 1.0, la maschera di ENM_UPDATE controlla questa notifica.
EN_VSCROLL Inviato quando l'utente fa clic sulla barra di scorrimento verticale di un controllo di modifica o quando l'utente scorre la rotellina del mouse sul controllo di modifica, prima che venga aggiornata la schermata. Questa operazione viene controllata attraverso la maschera ENM_SCROLL ; non vengono inviati dati aggiuntivi.
 
Nota Il EN_MSGFILTER non viene inviato a TxNotify. Per filtrare i messaggi della finestra, usare TxSendMessage.
 

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione textserv.h
DLL Msftedit.dll

Vedi anche

Informazioni concettuali

EM_SETEVENTMASK

EN_CHANGE

EN_DROPFILES

EN_ERRSPACE

EN_HSCROLL

EN_KILLFOCUS

EN_LINK

EN_MAXTEXT

EN_OLEOPFAILED

EN_PROTECTED

EN_REQUESTRESIZE

EN_SAVECLIPBOARD

EN_SELCHANGE

EN_SETFOCUS

EN_STOPNOUNDO

EN_UPDATE

EN_VSCROLL

ITextHost

Riferimento

Controlli di modifica avanzati senza finestre