How to a livello di programmazione aggiungere testo a un controllo di modifica

Traduzione articoli Traduzione articoli
Identificativo articolo: 109550 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

Applicazioni basate su Windows, spesso, utilizzare i controlli di modifica per visualizzare il testo. Queste applicazioni è talvolta necessario aggiungere testo alla fine di un controllo di modifica anziché sostituire il testo esistente. Esistono due diversa modi per eseguire questa operazione in Windows:
  • Utilizzare messaggi EM_SETSEL e EM_REPLACESEL.
  • Utilizzare il messaggio EM_SETSEL con le funzioni Appunti per aggiungere testo al buffer del controllo di modifica.

Informazioni

Nota: Poiché i parametri del messaggio per il messaggio EM_SETSEL sono diversi tra la versione a 32 bit e la versione a 16 bit, il codice riportato di seguito utilizza la macro di Win32 per determinare in fase di generazione se si tratta di un'applicazione a 16 o 32 bit.

Il messaggio EM_SETSEL può essere utilizzato per inserire un intervallo di testo selezionato in un controllo di modifica di Windows. Se la posizioni iniziale e finale dell'intervallo sono impostate nella stessa posizione, non viene effettuata una selezione e un punto di inserimento può essere inserito in tale posizione. Per inserire un punto di inserimento alla fine del testo di un controllo di modifica di Windows e si imposta lo stato attivo su controllo di modifica, attenersi alla seguente:
   HWND hEdit = GetDlgItem (hDlg, ID_EDIT);
   int ndx = GetWindowTextLength (hEdit);
   SetFocus (hEdit);
   #ifdef WIN32
      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
   #else
      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));
   #endif
dopo il punto di inserimento viene posizionato alla fine nel controllo di modifica, è possibile utilizzare il EM_REPLACESEL per aggiungere testo al controllo di modifica. Un'applicazione invia un messaggio EM_REPLACESEL per sostituire la selezione corrente in un controllo di modifica con il testo specificato dal parametro lpszReplace (lParam). Poiché non è presente alcuna selezione corrente, il testo di sostituzione viene inserito nella posizione del punto di inserimento corrente. In questo esempio imposta la selezione alla fine del controllo di modifica e inserisce il testo nel buffer:
   #ifdef WIN32
      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
   #else
      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));
   #endif
      SendMessage (hEdit, EM_REPLACESEL, 0, (LPARAM) ((LPSTR) szBuffer));
				
un altro modo per inserire testo in un controllo di modifica consiste nell'utilizzare gli Appunti di Windows. Se l'applicazione dispone di Appunti aprire o trova di utile aprire gli Appunti e il testo viene copiato negli Appunti, quindi possibile inviare il messaggio WM_PASTE al controllo di modifica per aggiungere testo. Naturalmente, tutti i dati negli Appunti andranno persi.

Prima di inviare il messaggio WM_PASTE, deve essere inserito il punto di inserimento alla fine del testo di controllo di modifica utilizzando il messaggio EM_SETSEL. Di seguito è "pseudo" codice viene illustrato come implementare questo metodo:
   OpenClipBoard () ;
   EmptyClipBoard() ;
   SetClipBoardData() ;

   #ifdef WIN32
      SendMessage (hEdit, EM_SETSEL, (WPARAM)ndx, (LPARAM)ndx);
   #else
      SendMessage (hEdit, EM_SETSEL, 0, MAKELONG (ndx, ndx));
   #endif
      SendMessage (hEdit, WM_PASTE,   0, 0L);
				
il codice "pseudo" aggiunge testo alla fine del controllo di modifica. Si noti che i dati negli Appunti devono essere nel formato CF_TEXT.

Proprietà

Identificativo articolo: 109550 - Ultima modifica: lunedì 11 luglio 2005 - Revisione: 1.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Platform Software Development Kit-edizione gennaio 2000
  • Microsoft Windows Software Development Kit 3.1
Chiavi: 
kbmt kbctrl kbeditctrl kbhowto KB109550 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 109550
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com