Condividi tramite


Classe CEdit

Fornisce la funzionalità di un controllo di modifica di Windows.

Sintassi

class CEdit : public CWnd

Membri

Costruttori pubblici

Nome Descrizione
CEdit::CEdit Costruisce un CEdit oggetto controllo.

Metodi pubblici

Nome Descrizione
CEdit::CanUndo Determina se un'operazione di controllo di modifica può essere annullata.
CEdit::CharFromPos Recupera gli indici di riga e carattere per il carattere più vicino a una posizione specificata.
CEdit::Clear Elimina (cancella) la selezione corrente (se presente) nel controllo di modifica.
CEdit::Copy Copia la selezione corrente ,se presente, nel controllo di modifica negli Appunti in formato CF_TEXT.
CEdit::Create Crea il controllo di modifica di Windows e lo collega all'oggetto CEdit .
CEdit::Cut Elimina (taglia) la selezione corrente (se presente) nel controllo di modifica e copia il testo eliminato negli Appunti in formato CF_TEXT.
CEdit::EmptyUndoBuffer Reimposta (cancella) il flag di annullamento di un controllo di modifica.
CEdit::FmtLines Imposta l'inclusione di caratteri di interruzione di riga temporanea attiva o disattivata all'interno di un controllo di modifica a più righe.
CEdit::GetCueBanner Recupera il testo visualizzato come segnale di testo, o suggerimento, in un controllo di modifica quando il controllo è vuoto e non ha lo stato attivo.
CEdit::GetFirstVisibleLine Determina la riga più visibile in alto in un controllo di modifica.
CEdit::GetHandle Recupera un handle per la memoria attualmente allocata per un controllo di modifica a più righe.
CEdit::GetHighlight Ottiene gli indici dei caratteri iniziali e finali in un intervallo di testo evidenziato nel controllo di modifica corrente.
CEdit::GetLimitText Ottiene la quantità massima di testo che CEdit può contenere.
CEdit::GetLine Recupera una riga di testo da un controllo di modifica.
CEdit::GetLineCount Recupera il numero di righe in un controllo di modifica a più righe.
CEdit::GetMargins Ottiene i margini sinistro e destro per l'oggetto CEdit.
CEdit::GetModify Determina se il contenuto di un controllo di modifica è stato modificato.
CEdit::GetPasswordChar Recupera il carattere password visualizzato in un controllo di modifica quando l'utente immette testo.
CEdit::GetRect Ottiene il rettangolo di formattazione di un controllo di modifica.
CEdit::GetSel Ottiene le posizioni del primo e dell'ultimo carattere della selezione corrente in un controllo di modifica.
CEdit::HideBalloonTip Nasconde qualsiasi suggerimento a forma di fumetto associato al controllo di modifica corrente.
CEdit::LimitText Limita la lunghezza del testo che l'utente può immettere in un controllo di modifica.
CEdit::LineFromChar Recupera il numero di riga della riga contenente l'indice di caratteri specificato.
CEdit::LineIndex Recupera l'indice di caratteri di una riga all'interno di un controllo di modifica a più righe.
CEdit::LineLength Recupera la lunghezza di una riga in un controllo di modifica.
CEdit::LineScroll Scorre il testo di un controllo di modifica a più righe.
CEdit::P aste Inserisce i dati dagli Appunti nel controllo di modifica in corrispondenza della posizione corrente del cursore. I dati vengono inseriti solo se gli Appunti contengono dati in formato CF_TEXT.
CEdit::P osFromChar Recupera le coordinate dell'angolo superiore sinistro di un indice di caratteri specificato.
CEdit::ReplaceSel Sostituisce la selezione corrente in un controllo di modifica con il testo specificato.
CEdit::SetCueBanner Imposta il testo visualizzato come segnale di testo o suggerimento in un controllo di modifica quando il controllo è vuoto e non ha lo stato attivo.
CEdit::SetHandle Imposta l'handle sulla memoria locale che verrà utilizzata da un controllo di modifica a più righe.
CEdit::SetHighlight Evidenzia un intervallo di testo visualizzato nel controllo di modifica corrente.
CEdit::SetLimitText Imposta la quantità massima di testo CEdit che può contenere.
CEdit::SetMargins Imposta i margini sinistro e destro per questo CEditoggetto .
CEdit::SetModify Imposta o cancella il flag di modifica per un controllo di modifica.
CEdit::SetPasswordChar Imposta o rimuove un carattere password visualizzato in un controllo di modifica quando l'utente immette testo.
CEdit::SetReadOnly Imposta lo stato di sola lettura di un controllo di modifica.
CEdit::SetRect Imposta il rettangolo di formattazione di un controllo di modifica a più righe e aggiorna il controllo.
CEdit::SetRectNP Imposta il rettangolo di formattazione di un controllo di modifica a più righe senza ridisegnare la finestra di controllo.
CEdit::SetSel Seleziona un intervallo di caratteri in un controllo di modifica.
CEdit::SetTabStops Imposta le tabulazioni in un controllo di modifica a più righe.
CEdit::ShowBalloonTip Visualizza un suggerimento per il fumetto associato al controllo di modifica corrente.
CEdit::Annulla Inverte l'ultima operazione di controllo di modifica.

Osservazioni:

Un controllo di modifica è una finestra figlio rettangolare in cui l'utente può immettere testo.

È possibile creare un controllo di modifica da un modello di finestra di dialogo o direttamente nel codice. In entrambi i casi, chiamare prima il costruttore CEdit per costruire l'oggetto CEdit , quindi chiamare la funzione membro Create per creare il controllo di modifica di Windows e collegarlo all'oggetto CEdit .

La costruzione può essere un processo in un unico passaggio in una classe derivata da CEdit. Scrivere un costruttore per la classe derivata e chiamare Create dall'interno del costruttore.

CEdit eredita funzionalità significative da CWnd. Per impostare e recuperare testo da un CEdit oggetto, utilizzare le CWnd funzioni membro SetWindowText e GetWindowText, che impostano o ottengono l'intero contenuto di un controllo di modifica, anche se si tratta di un controllo multilinea. Le righe di testo in un controllo multilinea sono separate da sequenze di caratteri '\r\n'. Inoltre, se un controllo di modifica è multilinea, ottenere e impostare parte del testo del controllo chiamando le CEdit funzioni membro GetLine, SetSel, GetSel e ReplaceSel.

Se si desidera gestire i messaggi di notifica di Windows inviati da un controllo di modifica al relativo elemento padre (in genere una classe derivata da CDialog), aggiungere una voce della mappa messaggi e una funzione membro del gestore messaggi alla classe padre per ogni messaggio.

Ogni voce della mappa messaggi ha il formato seguente:

ON_NOTIFICATION( id, memberFxn )

dove id specifica l'ID finestra figlio del controllo di modifica che invia la notifica e memberFxn è il nome della funzione membro padre scritta per gestire la notifica.

Il prototipo della funzione padre è il seguente:

afx_msg void memberFxn ( );

Di seguito è riportato un elenco di potenziali voci della mappa messaggi e una descrizione dei casi in cui verrebbero inviati all'elemento padre:

  • ON_EN_CHANGE L'utente ha eseguito un'azione che potrebbe aver modificato il testo in un controllo di modifica. A differenza del messaggio di notifica EN_UPDATE, questo messaggio di notifica viene inviato dopo che Windows aggiorna la visualizzazione.

  • ON_EN_ERRSPACE Il controllo di modifica non può allocare memoria sufficiente per soddisfare una richiesta specifica.

  • ON_EN_HSCROLL L'utente fa clic sulla barra di scorrimento orizzontale di un controllo di modifica. La finestra padre riceve una notifica prima dell'aggiornamento della schermata.

  • ON_EN_KILLFOCUS Il controllo di modifica perde lo stato attivo dell'input.

  • ON_EN_MAXTEXT L'inserimento corrente ha superato il numero specificato di caratteri per il controllo di modifica ed è stato troncato. Inviato anche quando un controllo di modifica non dispone dello stile ES_AUTOHSCROLL e il numero di caratteri da inserire supererebbe la larghezza del controllo di modifica. Inviato anche quando un controllo di modifica non ha lo stile ES_AUTOVSCROLL e il numero totale di righe risultanti da un inserimento di testo supera l'altezza del controllo di modifica.

  • ON_EN_SETFOCUS Inviato quando un controllo di modifica riceve lo stato attivo per l'input.

  • ON_EN_UPDATE Il controllo di modifica sta per visualizzare il testo modificato. Inviato dopo che il controllo ha formattato il testo, ma prima di visualizzare il testo in modo che le dimensioni della finestra possano essere modificate, se necessario.

  • ON_EN_VSCROLL L'utente fa clic sulla barra di scorrimento verticale di un controllo di modifica. La finestra padre riceve una notifica prima dell'aggiornamento della schermata.

Se si crea un CEdit oggetto all'interno di una finestra di dialogo, l'oggetto CEdit viene eliminato automaticamente quando l'utente chiude la finestra di dialogo.

Se si crea un CEdit oggetto da una risorsa di dialogo usando l'editor di dialoghi, l'oggetto CEdit viene eliminato automaticamente quando l'utente chiude la finestra di dialogo.

Se si crea un CEdit oggetto all'interno di una finestra, potrebbe essere necessario eliminarlo definitivamente. Se si crea l'oggetto CEdit nello stack, viene eliminato automaticamente. Se si crea l'oggetto nell'heap CEdit usando la new funzione , è necessario chiamare delete sull'oggetto per distruggerlo quando l'utente termina il controllo di modifica di Windows. Se si alloca memoria nell'oggetto, eseguire l'override CEdit del CEdit distruttore per eliminare le allocazioni.

Per modificare determinati stili in un controllo di modifica,ad esempio ES_READONLY, è necessario inviare messaggi specifici al controllo anziché utilizzare ModifyStyle. Vedere Modificare gli stili di controllo in Windows SDK.

Per altre informazioni su CEdit, vedere Controlli.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CEdit

Requisiti

Intestazione: afxwin.h

CEdit::CanUndo

Chiamare questa funzione per determinare se l'ultima operazione di modifica può essere annullata.

BOOL CanUndo() const;

Valore restituito

Diverso da zero se l'ultima operazione di modifica può essere annullata da una chiamata alla Undo funzione membro; 0 se non può essere annullata.

Osservazioni:

Per altre informazioni, vedere EM_CANUNDO in Windows SDK.

Esempio

Vedere l'esempio per CEdit::Undo.

CEdit::CEdit

Costruisce un oggetto CEdit.

CEdit();

Osservazioni:

Usare Crea per costruire il controllo di modifica di Windows.

Esempio

// Declare a local CEdit object.
CEdit myEdit;

// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;

CEdit::CharFromPos

Chiamare questa funzione per recuperare gli indici di riga e carattere in base zero del carattere più vicino al punto specificato in questo CEdit controllo

int CharFromPos(CPoint pt) const;

Parametri

pt
Coordinate di un punto nell'area client di questo CEdit oggetto.

Valore restituito

Indice dei caratteri in WORD con ordine basso e indice di riga in WORD di ordine elevato.

Osservazioni:

Nota

Questa funzione membro è disponibile a partire da Windows 95 e Windows NT 4.0.

Per altre informazioni, vedere EM_CHARFROMPOS in Windows SDK.

Esempio

// CMyEdit inherits from CEdit
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
   int n = CharFromPos(point);
   int nLineIndex = HIWORD(n);
   int nCharIndex = LOWORD(n);
   TRACE(_T("nLineIndex = %d, nCharIndex = %d\r\n"), nLineIndex, nCharIndex);

   CEdit::OnLButtonDown(nFlags, point);
}

CEdit::Clear

Chiamare questa funzione per eliminare (deselezionare) la selezione corrente (se presente) nel controllo di modifica.

void Clear();

Osservazioni:

L'eliminazione eseguita da Clear può essere annullata chiamando la funzione membro Annulla .

Per eliminare la selezione corrente e posizionare il contenuto eliminato negli Appunti, chiamare la funzione membro Cut .

Per altre informazioni, vedere WM_CLEAR in Windows SDK.

Esempio

// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();

CEdit::Copy

Chiamare questa funzione per comitare la selezione corrente (se presente) nel controllo di modifica negli Appunti in formato CF_TEXT.

void Copy();

Osservazioni:

Per altre informazioni, vedere WM_COPY in Windows SDK.

Esempio

// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();

CEdit::Create

Crea il controllo di modifica di Windows e lo collega all'oggetto CEdit .

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametri

dwStyle
Specifica lo stile del controllo di modifica. Applicare qualsiasi combinazione di stili di modifica al controllo .

rect
Specifica le dimensioni e la posizione del controllo di modifica. Può essere un oggetto o RECT una CRect struttura.

pParentWnd
Specifica la finestra padre del controllo di modifica (in genere ).CDialog Non deve essere NULL.

nID
Specifica l'ID del controllo di modifica.

Valore restituito

Diverso da zero se l'inizializzazione ha esito positivo; in caso contrario, 0.

Osservazioni:

Si costruisce un CEdit oggetto in due passaggi. Prima di tutto, chiamare il CEdit costruttore e quindi chiamare Create, che crea il controllo di modifica di Windows e lo collega all'oggetto CEdit .

Quando Create viene eseguito, Windows invia i messaggi WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE e WM_GETMINMAXINFO al controllo di modifica.

Questi messaggi vengono gestiti per impostazione predefinita dalle funzioni membro OnNcCreate, OnNcCalcSize, OnCreate e OnGetMinMaxInfo nella CWnd classe base. Per estendere la gestione predefinita dei messaggi, derivare una classe da CEdit, aggiungere una mappa messaggi alla nuova classe ed eseguire l'override delle funzioni membro del gestore messaggi precedenti. Eseguire l'override OnCreatedi , ad esempio, per eseguire l'inizializzazione necessaria per la nuova classe.

Applicare gli stili di finestra seguenti a un controllo di modifica.

  • WS_CHILD sempre

  • WS_VISIBLE in genere

  • WS_DISABLED raramente

  • WS_GROUP A raggruppare i controlli

  • WS_TABSTOP Per includere il controllo di modifica nell'ordine di tabulazione

Esempio

// dynamically create an edit control
CEdit *pEdit = new CEdit;
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
              CRect(10, 10, 100, 100), this, 1);

CEdit::Cut

Chiamare questa funzione per eliminare (tagliare) la selezione corrente (se presente) nel controllo di modifica e copiare il testo eliminato negli Appunti nel formato CF_TEXT.

void Cut();

Osservazioni:

L'eliminazione eseguita da Cut può essere annullata chiamando la funzione membro Annulla .

Per eliminare la selezione corrente senza inserire il testo eliminato negli Appunti, chiamare la funzione membro Clear .

Per altre informazioni, vedere WM_CUT in Windows SDK.

Esempio

// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();

CEdit::EmptyUndoBuffer

Chiamare questa funzione per reimpostare (deselezionare) il flag di annullamento di un controllo di modifica.

void EmptyUndoBuffer();

Osservazioni:

Il controllo di modifica non sarà ora in grado di annullare l'ultima operazione. Il flag di annullamento viene impostato ogni volta che un'operazione all'interno del controllo di modifica può essere annullata.

Il flag di annullamento viene cancellato automaticamente ogni volta che vengono chiamate le funzioni membro SetWindowText o SetHandleCWnd .

Per altre informazioni, vedere EM_EMPTYUNDOBUFFER in Windows SDK.

Esempio

// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
   m_myEdit.EmptyUndoBuffer();
   ASSERT(!m_myEdit.CanUndo());
}

CEdit::FmtLines

Chiamare questa funzione per impostare l'inclusione di caratteri di interruzione linea temporanea attiva o disattivata all'interno di un controllo di modifica a più righe.

BOOL FmtLines(BOOL bAddEOL);

Parametri

bAddEOL
Specifica se inserire caratteri di interruzione di riga temporanea. Il valore TRUE inserisce i caratteri; un valore false li rimuove.

Valore restituito

Diverso da zero se si verifica una formattazione; in caso contrario, 0.

Osservazioni:

Un'interruzione linea morbida è costituita da due ritorni a capo e da un avanzamento linea inserito alla fine di una riga interrotta a causa del ritorno a capo automatico. Un'interruzione di linea dura è costituita da un ritorno a capo e da un avanzamento riga. Le righe che terminano con un'interruzione di riga rigida non sono interessate da FmtLines.

Windows risponderà solo se l'oggetto CEdit è un controllo di modifica a più righe.

FmtLines influisce solo sul buffer restituito da GetHandle e sul testo restituito da WM_GETTEXT. Non ha alcun impatto sulla visualizzazione del testo all'interno del controllo di modifica.

Per altre informazioni, vedere EM_FMTLINES in Windows SDK.

Esempio

CString strText;

// Add soft line-break breaks.
m_myEdit.FmtLines(TRUE);

// Dump the text of the edit control.
m_myEdit.GetWindowText(strText);
AFXDUMP(strText);

// Remove soft line-break breaks.
m_myEdit.FmtLines(FALSE);

CEdit::GetCueBanner

Recupera il testo visualizzato come segnale di testo o suggerimento in un controllo di modifica quando il controllo è vuoto.

BOOL GetCueBanner(
    LPWSTR lpszText,
    int cchText) const;

CString GetCueBanner() const;

Parametri

lpszText
[out] Puntatore a una stringa contenente il testo del segnale.

cchText
[in] Numero di caratteri che è possibile ricevere. Questo numero include il carattere NULL di terminazione.

Valore restituito

Per il primo overload, TRUE se il metodo ha esito positivo; in caso contrario FALSE.

Per il secondo overload, CString che contiene il testo del segnale se il metodo ha esito positivo; in caso contrario, la stringa vuota ("").

Osservazioni:

Questo metodo invia il messaggio di EM_GETCUEBANNER , descritto in Windows SDK. Per altre informazioni, vedere la macro Edit_GetCueBannerText .

CEdit::GetFirstVisibleLine

Chiamare questa funzione per determinare la riga più visibile in un controllo di modifica.

int GetFirstVisibleLine() const;

Valore restituito

Indice in base zero della riga visibile in alto. Per i controlli di modifica a riga singola, il valore restituito è 0.

Osservazioni:

Per altre informazioni, vedere EM_GETFIRSTVISIBLELINE in Windows SDK.

Esempio

int nFirstVisible = m_myEdit.GetFirstVisibleLine();

// Scroll the edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
   m_myEdit.LineScroll(-nFirstVisible, 0);
}

CEdit::GetHandle

Chiamare questa funzione per recuperare un handle alla memoria attualmente allocata per un controllo di modifica a più righe.

HLOCAL GetHandle() const;

Valore restituito

Handle di memoria locale che identifica il buffer che contiene il contenuto del controllo di modifica. Se si verifica un errore, ad esempio l'invio del messaggio a un controllo di modifica a riga singola, il valore restituito è 0.

Osservazioni:

L'handle è un handle di memoria locale e può essere usato da qualsiasi funzione di memoria di Windows locale che accetta un handle di memoria locale come parametro.

GetHandle viene elaborato solo da controlli di modifica a più righe.

Chiamare GetHandle un controllo di modifica a più righe in una finestra di dialogo solo se la finestra di dialogo è stata creata con il set di flag di stile DS_LOCALEDIT. Se lo stile DS_LOCALEDIT non è impostato, si otterrà comunque un valore restituito diverso da zero, ma non sarà possibile usare il valore restituito.

Nota

GetHandle non funzionerà con Windows 95/98. Se chiami GetHandle in Windows 95/98, restituirà NULL. GetHandle funzionerà come documentato in Windows NT, versioni 3.51 e successive.

Per altre informazioni, vedere EM_GETHANDLE in Windows SDK.

Esempio

HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);

// Dump the text of the edit control.
AFXDUMP(lpszText);

::LocalUnlock(h);

CEdit::GetHighlight

Ottiene gli indici dei primi e degli ultimi caratteri in un intervallo di testo evidenziato nel controllo di modifica corrente.

BOOL GetHighlight(
    int* pichStart,
    int* pichEnd) const;

Parametri

pichStart
[out] Indice in base zero del primo carattere nell'intervallo di testo evidenziato.

pichEnd
[out] Indice in base zero dell'ultimo carattere nell'intervallo di testo evidenziato.

Valore restituito

TRUE se questo metodo ha esito positivo; in caso contrario, FALSE.

Osservazioni:

Questo metodo invia il messaggio di EM_GETHILITE , descritto in Windows SDK. Sia SetHighlight che GetHighlight sono attualmente abilitati solo per le compilazioni UNICODE.

CEdit::GetLimitText

Chiamare questa funzione membro per ottenere il limite di testo per questo CEdit oggetto.

UINT GetLimitText() const;

Valore restituito

Limite di testo corrente, in TCHAR, per questo CEdit oggetto.

Osservazioni:

Il limite di testo è la quantità massima di testo, in TCHAR, che il controllo di modifica può accettare.

Nota

Questa funzione membro è disponibile a partire da Windows 95 e Windows NT 4.0.

Per altre informazioni, vedere EM_GETLIMITTEXT in Windows SDK.

Esempio

CString strText(_T("I'm an edit control!"));
UINT nLength = strText.GetLength() * sizeof(TCHAR);

// Want the text limit to be at least the size of the new string.
if (m_myEdit.GetLimitText() < nLength)
   m_myEdit.SetLimitText(nLength);

m_myEdit.SetWindowText(strText);

CEdit::GetLine

Chiamare questa funzione per recuperare una riga di testo da un controllo di modifica e posizionarla in lpszBuffer.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer,
    int nMaxLength) const;

Parametri

nIndex
Specifica il numero di riga da recuperare da un controllo di modifica a più righe. I numeri di riga sono in base zero; Il valore 0 specifica la prima riga. Questo parametro viene ignorato da un controllo di modifica a riga singola.

lpszBuffer
Punta al buffer che riceve una copia della riga. La prima parola del buffer deve specificare il numero massimo di TCHAR che possono essere copiati nel buffer.

nMaxLength
Specifica il numero massimo di caratteri TCHAR che possono essere copiati nel buffer. GetLineinserisce questo valore nella prima parola di lpszBuffer prima di effettuare la chiamata a Windows.

Valore restituito

Numero di caratteri attualmente copiati. Il valore restituito è 0 se il numero di riga specificato da nIndex è maggiore del numero di righe nel controllo di modifica.

Osservazioni:

La riga copiata non contiene un carattere di terminazione Null.

Per altre informazioni, vedere EM_GETLINE in Windows SDK.

Esempio

Vedere l'esempio per CEdit::GetLineCount.

CEdit::GetLineCount

Chiamare questa funzione per recuperare il numero di righe in un controllo di modifica a più righe.

int GetLineCount() const;

Valore restituito

Intero contenente il numero di righe nel controllo di modifica a più righe. Se nel controllo di modifica non è stato immesso testo, il valore restituito è 1.

Osservazioni:

GetLineCount viene elaborato solo da controlli di modifica a più righe.

Per altre informazioni, vedere EM_GETLINECOUNT in Windows SDK.

Esempio

int i, nLineCount = m_myEdit.GetLineCount();
CString strText, strLine;
// Dump every line of text of the edit control.
for (i = 0; i < nLineCount; i++)
{
   // length of line i:
   int len = m_myEdit.LineLength(m_myEdit.LineIndex(i));
   m_myEdit.GetLine(i, strText.GetBuffer(len), len);
   strText.ReleaseBuffer(len);
   strLine.Format(_T("line %d: '%s'\n"), i, strText);
   AFXDUMP(strLine);
}

CEdit::GetMargins

Chiamare questa funzione membro per recuperare i margini sinistro e destro di questo controllo di modifica.

DWORD GetMargins() const;

Valore restituito

Larghezza del margine sinistro in WORD in ordine basso e larghezza del margine destro in WORD di ordine elevato.

Osservazioni:

I margini vengono misurati in pixel.

Nota

Questa funzione membro è disponibile a partire da Windows 95 e Windows NT 4.0.

Per altre informazioni, vedere EM_GETMARGINS in Windows SDK.

Esempio

Vedere l'esempio per CEditView::GetEditCtrl.

CEdit::GetModify

Chiamare questa funzione per determinare se il contenuto di un controllo di modifica è stato modificato.

BOOL GetModify() const;

Valore restituito

Diverso da zero se il contenuto del controllo di modifica è stato modificato; 0 se sono rimasti invariati.

Osservazioni:

Windows mantiene un flag interno che indica se il contenuto del controllo di modifica è stato modificato. Questo flag viene cancellato quando il controllo di modifica viene creato per la prima volta e può anche essere cancellato chiamando la funzione membro SetModify .

Per altre informazioni, vedere EM_GETMODIFY in Windows SDK.

Esempio

// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
   m_myEdit.SetModify(FALSE);

CEdit::GetPasswordChar

Chiamare questa funzione per recuperare il carattere password visualizzato in un controllo di modifica quando l'utente immette testo.

TCHAR GetPasswordChar() const;

Valore restituito

Specifica il carattere da visualizzare anziché il carattere digitato dall'utente. Il valore restituito è NULL se non esiste alcun carattere password.

Osservazioni:

Se si crea il controllo di modifica con lo stile ES_PASSWORD, la DLL che supporta il controllo determina il carattere password predefinito. Il manifesto o il metodo InitCommonControlsEx determina la DLL che supporta il controllo di modifica. Se user32.dll supporta il controllo di modifica, il carattere password predefinito è ASTERISK ('*', U+002A). Se comctl32.dll versione 6 supporta il controllo di modifica, il carattere predefinito è BLACK CIRCLE ('●', U+25CF). Per altre informazioni sulla DLL e sulla versione che supportano i controlli comuni, vedere Shell e Versioni dei controlli comuni.

Questo metodo invia il messaggio EM_GETPASSWORDCHAR , descritto in Windows SDK.

Esempio

// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');

CEdit::GetRect

Chiamare questa funzione per ottenere il rettangolo di formattazione di un controllo di modifica.

void GetRect(LPRECT lpRect) const;

Parametri

lpRect
Punta alla RECT struttura che riceve il rettangolo di formattazione.

Osservazioni:

Il rettangolo di formattazione è il rettangolo di limitazione del testo, indipendentemente dalle dimensioni della finestra di controllo di modifica.

Il rettangolo di formattazione di un controllo di modifica a più righe può essere modificato dalle funzioni membro SetRect e SetRectNP .

Per altre informazioni, vedere EM_GETRECT in Windows SDK.

Esempio

Vedere l'esempio per CEdit::LimitText.

CEdit::GetSel

Chiamare questa funzione per ottenere le posizioni del carattere iniziale e finale della selezione corrente (se presente) in un controllo di modifica, usando il valore restituito o i parametri.

DWORD GetSel() const;

void GetSel(
    int& nStartChar,
    int& nEndChar) const;

Parametri

nStartChar
Riferimento a un numero intero che riceverà la posizione del primo carattere nella selezione corrente.

nEndChar
Riferimento a un numero intero che riceverà la posizione del primo carattere non selezionato oltre la fine della selezione corrente.

Valore restituito

La versione che restituisce un valore DWORD restituisce un valore che contiene la posizione iniziale nella parola in ordine basso e la posizione del primo carattere non selezionato dopo la fine della selezione nella parola in ordine elevato.

Osservazioni:

Per altre informazioni, vedere EM_GETSEL in Windows SDK.

Esempio

// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);

CEdit::HideBalloonTip

Nasconde qualsiasi suggerimento a forma di fumetto associato al controllo di modifica corrente.

BOOL HideBalloonTip();

Valore restituito

TRUE se questo metodo ha esito positivo; in caso contrario, FALSE.

Osservazioni:

Questa funzione invia il messaggio di EM_HIDEBALLOONTIP , descritto in Windows SDK.

CEdit::LimitText

Chiamare questa funzione per limitare la lunghezza del testo che l'utente può immettere in un controllo di modifica.

void LimitText(int nChars = 0);

Parametri

nChars
Specifica la lunghezza (in TCHAR) del testo che l'utente può immettere. Se questo parametro è 0, la lunghezza del testo viene impostata su UINT_MAX byte. Questo è il comportamento predefinito.

Osservazioni:

La modifica del limite di testo limita solo il testo che l'utente può immettere. Non ha alcun effetto su alcun testo già presente nel controllo di modifica, né influisce sulla lunghezza del testo copiato nel controllo di modifica dalla funzione membro SetWindowText in CWnd. Se un'applicazione usa la SetWindowText funzione per inserire più testo in un controllo di modifica di quello specificato nella chiamata a LimitText, l'utente può eliminare qualsiasi testo all'interno del controllo di modifica. Tuttavia, il limite di testo impedirà all'utente di sostituire il testo esistente con nuovo testo, a meno che l'eliminazione della selezione corrente non causi che il testo scende al di sotto del limite di testo.

Nota

In Win32 (Windows NT e Windows 95/98), SetLimitText sostituisce questa funzione.

Per altre informazioni, vedere EM_LIMITTEXT in Windows SDK.

Esempio

// Limit the number of characters to be the maximum number visible.

// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myEdit.GetDC();
pDC->GetTextMetrics(&tm);
m_myEdit.ReleaseDC(pDC);

CRect r;
m_myEdit.GetRect(&r);
m_myEdit.LimitText(r.Width() / tm.tmAveCharWidth);

CEdit::LineFromChar

Chiamare questa funzione per recuperare il numero di riga della riga contenente l'indice di caratteri specificato.

int LineFromChar(int nIndex = -1) const;

Parametri

nIndex
Contiene il valore dell'indice in base zero per il carattere desiderato nel testo del controllo di modifica oppure contiene -1. Se nIndex è -1, specifica la riga corrente, ovvero la riga che contiene il cursore.

Valore restituito

Numero di riga in base zero della riga contenente l'indice dei caratteri specificato da nIndex. Se nIndex è -1, viene restituito il numero della riga contenente il primo carattere della selezione. Se non è presente alcuna selezione, viene restituito il numero di riga corrente.

Osservazioni:

Un indice di caratteri è il numero di caratteri dall'inizio del controllo di modifica.

Questa funzione membro viene usata solo dai controlli di modifica a più righe.

Per altre informazioni, vedere EM_LINEFROMCHAR in Windows SDK.

Esempio

// The index of the char to get information on.
int nIndex = 4;
CString strText;

m_myEdit.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);

// Get the text extent of the character.
CDC *pDC = m_myEdit.GetDC();
CSize sz = pDC->GetTextExtent(strText);
m_myEdit.ReleaseDC(pDC);

CPoint pt = m_myEdit.PosFromChar(nIndex);

// Dump the index, character, line number, and character bounds.
TRACE(_T("nIndex = %d, character = %c, line = %d, bounds = ")
      _T("{%d, %d, %d, %d}\r\n"),
      nIndex, strText[0], m_myEdit.LineFromChar(nIndex),
      pt.x /* left */, pt.y /* top */,
      pt.x + sz.cx /* right */, pt.y + sz.cy /* bottom */);

CEdit::LineIndex

Chiamare questa funzione per recuperare l'indice dei caratteri di una riga all'interno di un controllo di modifica a più righe.

int LineIndex(int nLine = -1) const;

Parametri

nLine
Contiene il valore di indice per la riga desiderata nel testo del controllo di modifica oppure contiene -1. Se nLine è -1, specifica la riga corrente, ovvero la riga che contiene il cursore.

Valore restituito

Indice di caratteri della riga specificata in nLine o -1 se il numero di riga specificato è maggiore del numero di righe nel controllo di modifica.

Osservazioni:

L'indice dei caratteri è il numero di caratteri dall'inizio del controllo di modifica alla riga specificata.

Questa funzione membro viene elaborata solo da controlli di modifica a più righe.

Per altre informazioni, vedere EM_LINEINDEX in Windows SDK.

Esempio

// The string for replacing.
CString strString(_T("Hi, we're the replacements."));
int nBegin, nEnd;

// Replace the second line, if it exists, of the edit control
// with the text strString.
if ((nBegin = m_myEdit.LineIndex(1)) != -1)
{
   nEnd = nBegin + m_myEdit.LineLength(nBegin);
   m_myEdit.SetSel(nBegin, nEnd);
   m_myEdit.ReplaceSel(strString);
}

CEdit::LineLength

Recupera la lunghezza di una riga in un controllo di modifica.

int LineLength(int nLine = -1) const;

Parametri

nLine
Indice in base zero di un carattere nella riga la cui lunghezza deve essere recuperata. Il valore predefinito è -1.

Valore restituito

Per i controlli di modifica a riga singola, il valore restituito è la lunghezza, in TCHAR, del testo nel controllo di modifica.

Per i controlli di modifica su più righe, il valore restituito è la lunghezza, in TCHAR, della riga specificata dal parametro nLine . Per il testo ANSI, la lunghezza è il numero di byte nella riga; per il testo Unicode, la lunghezza è il numero di caratteri nella riga. La lunghezza non include il carattere di ritorno a capo alla fine della riga.

Se il parametro nLine è maggiore del numero di caratteri nel controllo, il valore restituito è zero.

Se il parametro nLine è -1, il valore restituito corrisponde al numero di caratteri non selezionati nelle righe che contengono caratteri selezionati. Ad esempio, se la selezione si estende dal quarto carattere di una riga all'ottavo carattere dalla fine della riga successiva, il valore restituito è 10. Ovvero, tre caratteri sulla prima riga e sette sul successivo.

Per altre informazioni sul tipo TCHAR, vedere la riga TCHAR nella tabella in Tipi di dati di Windows.

Osservazioni:

Questo metodo è supportato dal messaggio EM_LINELENGTH , descritto in Windows SDK.

Esempio

Vedere l'esempio per CEdit::LineIndex.

CEdit::LineScroll

Chiamare questa funzione per scorrere il testo di un controllo di modifica a più righe.

void LineScroll(
    int nLines,
    int nChars = 0);

Parametri

nLines
Specifica il numero di righe da scorrere verticalmente.

nChars
Specifica il numero di posizioni dei caratteri da scorrere orizzontalmente. Questo valore viene ignorato se il controllo di modifica ha lo stile ES_RIGHT o ES_CENTER.

Osservazioni:

Questa funzione membro viene elaborata solo da controlli di modifica a più righe.

Il controllo di modifica non scorre verticalmente oltre l'ultima riga di testo nel controllo di modifica. Se la riga corrente più il numero di righe specificate da nLines supera il numero totale di righe nel controllo di modifica, il valore viene regolato in modo che l'ultima riga del controllo di modifica venga scorrere fino alla parte superiore della finestra del controllo di modifica.

LineScroll può essere utilizzato per scorrere orizzontalmente oltre l'ultimo carattere di qualsiasi riga.

Per altre informazioni, vedere EM_LINESCROLL in Windows SDK.

Esempio

Vedere l'esempio per CEdit::GetFirstVisibleLine.

CEdit::P aste

Chiamare questa funzione per inserire i dati dagli Appunti nell'oggetto CEdit in corrispondenza del punto di inserimento.

void Paste();

Osservazioni:

I dati vengono inseriti solo se gli Appunti contengono dati in formato CF_TEXT.

Per altre informazioni, vedere WM_PASTE in Windows SDK.

Esempio

// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();

CEdit::P osFromChar

Chiamare questa funzione per ottenere la posizione (angolo superiore sinistro) di un determinato carattere all'interno di questo CEdit oggetto.

CPoint PosFromChar(UINT nChar) const;

Parametri

nChar
Indice in base zero del carattere specificato.

Valore restituito

Coordinate dell'angolo superiore sinistro del carattere specificato da nChar.

Osservazioni:

Il carattere viene specificato assegnando il valore di indice in base zero. Se nChar è maggiore dell'indice dell'ultimo carattere in questo CEdit oggetto, il valore restituito specifica le coordinate della posizione del carattere appena oltre l'ultimo carattere in questo CEdit oggetto.

Nota

Questa funzione membro è disponibile a partire da Windows 95 e Windows NT 4.0.

Per altre informazioni, vedere EM_POSFROMCHAR in Windows SDK.

Esempio

Vedere l'esempio per CEdit::LineFromChar.

CEdit::ReplaceSel

Chiamare questa funzione per sostituire la selezione corrente in un controllo di modifica con il testo specificato da lpszNewText.

void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);

Parametri

lpszNewText
Punta a una stringa con terminazione Null contenente il testo sostitutivo.

bCanUndo
Per specificare che questa funzione può essere annullata, impostare il valore di questo parametro su TRUE. Il valore predefinito è FALSE.

Osservazioni:

Sostituisce solo una parte del testo in un controllo di modifica. Se si desidera sostituire tutto il testo, usare la funzione membro CWnd::SetWindowText .

Se non è presente alcuna selezione corrente, il testo sostitutivo viene inserito nella posizione corrente del cursore.

Per altre informazioni, vedere EM_REPLACESEL in Windows SDK.

Esempio

Vedere l'esempio per CEdit::LineIndex.

CEdit::SetCueBanner

Imposta il testo visualizzato come segnale di testo o suggerimento in un controllo di modifica quando il controllo è vuoto.

BOOL SetCueBanner(LPCWSTR lpszText);

BOOL SetCueBanner(
    LPCWSTR lpszText,
    BOOL fDrawWhenFocused = FALSE);

Parametri

lpszText
[in] Puntatore a una stringa contenente il segnale da visualizzare nel controllo di modifica.

fDrawWhenFocused
[in] Se FALSE, il banner di segnale non viene disegnato quando l'utente fa clic sul controllo di modifica e assegna al controllo lo stato attivo.

Se TRUE, il banner del segnale viene disegnato anche quando il controllo ha lo stato attivo. Il banner segnale scompare quando l'utente inizia a digitare nel controllo.

Il valore predefinito è FALSE.

Valore restituito

TRUE se il metodo ha esito positivo; in caso contrario FALSE.

Osservazioni:

Questo metodo invia il messaggio di EM_SETCUEBANNER , descritto in Windows SDK. Per altre informazioni, vedere la macro Edit_SetCueBannerTextFocused .

Esempio

Nell'esempio seguente viene illustrato il metodo CEdit::SetCueBanner .

m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);

CEdit::SetHandle

Chiamare questa funzione per impostare l'handle sulla memoria locale che verrà utilizzata da un controllo di modifica a più righe.

void SetHandle(HLOCAL hBuffer);

Parametri

hBuffer
Contiene un handle per la memoria locale. Questo handle deve essere stato creato da una chiamata precedente alla funzione LocalAlloc di Windows usando il flag LMEM_MOVEABLE. Si presuppone che la memoria contenga una stringa con terminazione Null. In caso contrario, il primo byte della memoria allocata deve essere impostato su 0.

Osservazioni:

Il controllo di modifica userà quindi questo buffer per archiviare il testo attualmente visualizzato anziché allocare il proprio buffer.

Questa funzione membro viene elaborata solo da controlli di modifica a più righe.

Prima che un'applicazione imposti un nuovo handle di memoria, deve usare la funzione membro GetHandle per ottenere l'handle nel buffer di memoria corrente e liberare tale memoria usando la LocalFree funzione Windows.

SetHandle cancella il buffer di annullamento (la funzione membro CanUndo quindi restituisce 0) e il flag di modifica interno (la funzione membro GetModify restituisce quindi 0). La finestra di controllo di modifica viene ridisegnata.

È possibile utilizzare questa funzione membro in un controllo di modifica a più righe in una finestra di dialogo solo se è stata creata la finestra di dialogo con il set di flag di stile DS_LOCALEDIT.

Nota

GetHandle non funzionerà con Windows 95/98. Se chiami GetHandle in Windows 95/98, restituirà NULL. GetHandle funzionerà come documentato in Windows NT, versioni 3.51 e successive.

Per altre informazioni, vedere EM_SETHANDLE, LocalAlloc e LocalFree in Windows SDK.

Esempio

// The string to set in the edit control.
CString strString(_T("George Frideric"));

// Initialize the new local handle.
size_t cbSize = (strString.GetLength() + 1) * sizeof(TCHAR);
HLOCAL h = ::LocalAlloc(LHND, cbSize);
LPTSTR lpszText = (LPTSTR)::LocalLock(h);
_tcsncpy_s(lpszText, cbSize / sizeof(TCHAR), strString, _TRUNCATE);
::LocalUnlock(h);

// Free the current text handle of the edit control.
::LocalFree(m_myEdit.GetHandle());

// Set the new text handle.
m_myEdit.SetHandle(h);

CEdit::SetHighlight

Evidenzia un intervallo di testo visualizzato nel controllo di modifica corrente.

void SetHighlight(
    int ichStart,
    int ichEnd);

Parametri

ichStart
[in] Indice in base zero del primo carattere nell'intervallo di testo da evidenziare.

ichEnd
[in] Indice in base zero dell'ultimo carattere nell'intervallo di testo da evidenziare.

Osservazioni:

Questo metodo invia il messaggio di EM_SETHILITE , descritto in Windows SDK. Questo metodo invia il messaggio di EM_SETHILITE , descritto in Windows SDK. Sia SetHighlight che GetHighlight sono abilitati solo per le compilazioni UNICODE.

CEdit::SetLimitText

Chiamare questa funzione membro per impostare il limite di testo per questo CEdit oggetto.

void SetLimitText(UINT nMax);

Parametri

nMax
Nuovo limite di testo, espresso in caratteri.

Osservazioni:

Il limite di testo è la quantità massima di testo, espressa in caratteri, che il controllo di modifica può accettare.

La modifica del limite di testo limita solo il testo che l'utente può immettere. Non ha alcun effetto su alcun testo già presente nel controllo di modifica, né influisce sulla lunghezza del testo copiato nel controllo di modifica dalla funzione membro SetWindowText in CWnd. Se un'applicazione usa la SetWindowText funzione per inserire più testo in un controllo di modifica di quello specificato nella chiamata a LimitText, l'utente può eliminare qualsiasi testo all'interno del controllo di modifica. Tuttavia, il limite di testo impedirà all'utente di sostituire il testo esistente con nuovo testo, a meno che l'eliminazione della selezione corrente non causi che il testo scende al di sotto del limite di testo.

Questa funzione sostituisce LimitText in Win32.

Per altre informazioni, vedere EM_SETLIMITTEXT in Windows SDK.

Esempio

Vedere l'esempio per CEditView::GetEditCtrl.

CEdit::SetMargins

Chiamare questo metodo per impostare i margini sinistro e destro di questo controllo di modifica.

void SetMargins(
    UINT nLeft,
    UINT nRight);

Parametri

nLeft
Larghezza del nuovo margine sinistro, in pixel.

nRight
Larghezza del nuovo margine destro, in pixel.

Osservazioni:

Nota

Questa funzione membro è disponibile a partire da Windows 95 e Windows NT 4.0.

Per altre informazioni, vedere EM_SETMARGINS in Windows SDK.

Esempio

Vedere l'esempio per CEditView::GetEditCtrl.

CEdit::SetModify

Chiamare questa funzione per impostare o cancellare il flag modificato per un controllo di modifica.

void SetModify(BOOL bModified = TRUE);

Parametri

bModified
Un valore TRUE indica che il testo è stato modificato e un valore FALSE indica che non è stato modificato. Per impostazione predefinita, il flag modificato è impostato.

Osservazioni:

Il flag modificato indica se il testo all'interno del controllo di modifica è stato modificato. Viene impostato automaticamente ogni volta che l'utente modifica il testo. È possibile recuperarne il valore con la funzione membro GetModify .

Per altre informazioni, vedere EM_SETMODIFY in Windows SDK.

Esempio

Vedere l'esempio per CEdit::GetModify.

CEdit::SetPasswordChar

Chiamare questa funzione per impostare o rimuovere un carattere password visualizzato in un controllo di modifica quando l'utente digita testo.

void SetPasswordChar(TCHAR ch);

Parametri

Ch
Specifica il carattere da visualizzare al posto del carattere digitato dall'utente. Se ch è 0, vengono visualizzati i caratteri effettivi digitati dall'utente.

Osservazioni:

Quando viene impostato un carattere password, tale carattere viene visualizzato per ogni carattere digitato dall'utente.

Questa funzione membro non ha alcun effetto su un controllo di modifica a più righe.

Quando viene chiamata la SetPasswordChar funzione membro, CEdit ridisegnerà tutti i caratteri visibili usando il carattere specificato da ch.

Se il controllo di modifica viene creato con lo stile ES_PASSWORD , il carattere password predefinito viene impostato su un asterisco ( *). Questo stile viene rimosso se SetPasswordChar viene chiamato con ch impostato su 0.

Per altre informazioni, vedere EM_SETPASSWORDCHAR in Windows SDK.

Esempio

// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));

CEdit::SetReadOnly

Chiama questa funzione per impostare lo stato di sola lettura di un controllo di modifica.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Parametri

bReadOnly
Specifica se impostare o rimuovere lo stato di sola lettura del controllo di modifica. Il valore TRUE imposta lo stato di sola lettura; Un valore false imposta lo stato su lettura/scrittura.

Valore restituito

Diverso da zero se l'operazione ha esito positivo o 0 se si verifica un errore.

Osservazioni:

L'impostazione corrente è disponibile testando il flag ES_READONLY nel valore restituito di CWnd::GetStyle.

Per altre informazioni, vedere EM_SETREADONLY in Windows SDK.

Esempio

// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);

CEdit::SetRect

Chiamare questa funzione per impostare le dimensioni di un rettangolo usando le coordinate specificate.

void SetRect(LPCRECT lpRect);

Parametri

lpRect
Punta alla struttura o CRect all'oggetto RECT che specifica le nuove dimensioni del rettangolo di formattazione.

Osservazioni:

Questo membro viene elaborato solo da controlli di modifica a più righe.

Utilizzare SetRect per impostare il rettangolo di formattazione di un controllo di modifica a più righe. Il rettangolo di formattazione è il rettangolo di limitazione del testo, indipendentemente dalle dimensioni della finestra di controllo di modifica. Quando il controllo di modifica viene creato per la prima volta, il rettangolo di formattazione corrisponde all'area client della finestra di controllo di modifica. Usando la SetRect funzione membro, un'applicazione può rendere il rettangolo di formattazione più grande o minore della finestra di controllo di modifica.

Se il controllo di modifica non dispone di una barra di scorrimento, il testo verrà ritagliato, non sottoposto a wrapping, se il rettangolo di formattazione è maggiore della finestra. Se il controllo di modifica contiene un bordo, il rettangolo di formattazione viene ridotto in base alle dimensioni del bordo. Se si regola il rettangolo restituito dalla GetRect funzione membro, è necessario rimuovere le dimensioni del bordo prima di passare il rettangolo a SetRect.

Quando SetRect viene chiamato, il testo del controllo di modifica viene riformattato e riprodotto nuovamente.

Per altre informazioni, vedere EM_SETRECT in Windows SDK.

Esempio

// Flag indicating whether to redraw the edit control.
bool fRedraw = TRUE;

CRect r;

m_myEdit.GetRect(&r);

// Reduce the formatting rect of the edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
   r.DeflateRect(10, 10);

   if (fRedraw)
      m_myEdit.SetRect(&r);
   else
      m_myEdit.SetRectNP(&r);
}

CEdit::SetRectNP

Chiamare questa funzione per impostare il rettangolo di formattazione di un controllo di modifica a più righe.

void SetRectNP(LPCRECT lpRect);

Parametri

lpRect
Punta a una struttura o CRect a un RECT oggetto che specifica le nuove dimensioni del rettangolo.

Osservazioni:

Il rettangolo di formattazione è il rettangolo di limitazione del testo, indipendentemente dalle dimensioni della finestra di controllo di modifica.

SetRectNP è identico alla SetRect funzione membro, ad eccezione del fatto che la finestra di controllo di modifica non viene ridisegnata.

Quando il controllo di modifica viene creato per la prima volta, il rettangolo di formattazione corrisponde all'area client della finestra di controllo di modifica. Chiamando la SetRectNP funzione membro, un'applicazione può rendere il rettangolo di formattazione più grande o minore della finestra di controllo di modifica.

Se il controllo di modifica non dispone di una barra di scorrimento, il testo verrà ritagliato, non sottoposto a wrapping, se il rettangolo di formattazione è maggiore della finestra.

Questo membro viene elaborato solo da controlli di modifica a più righe.

Per altre informazioni, vedere EM_SETRECTNP in Windows SDK.

Esempio

Vedere l'esempio per CEdit::SetRect.

CEdit::SetSel

Chiamare questa funzione per selezionare un intervallo di caratteri in un controllo di modifica.

void SetSel(
    DWORD dwSelection,
    BOOL bNoScroll = FALSE);

void SetSel(
    int nStartChar,
    int nEndChar,
    BOOL bNoScroll = FALSE);

Parametri

dwSelection
Specifica la posizione iniziale nella parola in ordine basso e nella posizione finale nella parola di ordine elevato. Se la parola di ordine basso è 0 e la parola di ordine elevato è -1, viene selezionato tutto il testo nel controllo di modifica. Se la parola in ordine basso è -1, viene rimossa qualsiasi selezione corrente.

bNoScroll
Indica se il cursore deve essere sottoposto a scorrimento nella visualizzazione. Se FALSE, il cursore viene scorrevole nella visualizzazione. Se TRUE, il cursore non viene scorrevole nella visualizzazione.

nStartChar
Specifica la posizione iniziale. Se nStartChar è 0 e nEndChar è -1, viene selezionato tutto il testo nel controllo di modifica. Se nStartChar è -1, viene rimossa qualsiasi selezione corrente.

nEndChar
Specifica la posizione finale.

Osservazioni:

Per altre informazioni, vedere EM_SETSEL in Windows SDK.

Esempio

Vedere l'esempio per CEdit::GetSel.

CEdit::SetTabStops

Chiamare questa funzione per impostare le tabulazioni in un controllo di modifica a più righe.

void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

Parametri

cxEachStop
Specifica che le tabulazioni devono essere impostate in ogni unità di dialogo cxEachStop .

nTabStops
Specifica il numero di tabulazioni contenute in rgTabStops. Questo numero deve essere maggiore di 1.

rgTabStops
Punta a una matrice di interi senza segno che specificano le tabulazioni nelle unità di dialogo. Un'unità di dialogo è una distanza orizzontale o verticale. Un'unità di dialogo orizzontale è uguale a un quarto dell'unità di larghezza di base del dialogo corrente e 1 unità di dialogo verticale è uguale a un ottavo dell'unità di altezza di base del dialogo corrente. Le unità di base del dialogo vengono calcolate in base all'altezza e alla larghezza del tipo di carattere di sistema corrente. La GetDialogBaseUnits funzione Windows restituisce le unità di base correnti del dialogo in pixel.

Valore restituito

Diverso da zero se le schede sono state impostate; in caso contrario, 0.

Osservazioni:

Quando il testo viene copiato in un controllo di modifica a più righe, qualsiasi carattere di tabulazione nel testo causerà la generazione dello spazio fino alla tabulazione successiva.

Per impostare tabulazioni sulle dimensioni predefinite di 32 unità di dialogo, chiamare la versione senza parametri di questa funzione membro. Per impostare tabulazioni su dimensioni diverse da 32, chiamare la versione con il parametro cxEachStop . Per impostare tabulazioni su una matrice di dimensioni, usare la versione con due parametri.

Questa funzione membro viene elaborata solo da controlli di modifica a più righe.

SetTabStops non ridisegna automaticamente la finestra di modifica. Se si modificano le tabulazioni per il testo già nel controllo di modifica, chiamare CWnd::InvalidateRect per ridisegnare la finestra di modifica.

Per altre informazioni, vedere EM_SETTABSTOPS e GetDialogBaseUnits in Windows SDK.

Esempio

Vedere l'esempio per CEditView::SetTabStops.

CEdit::ShowBalloonTip

Visualizza un suggerimento per il fumetto associato al controllo di modifica corrente.

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

BOOL ShowBalloonTip(
    LPCWSTR lpszTitle,
    LPCWSTR lpszText,
    INT ttiIcon = TTI_NONE);

Parametri

pEditBalloonTip
[in] Puntatore a una struttura EDITBALLOONTIP che descrive la punta del fumetto.

lpszTitle
[in] Puntatore a una stringa Unicode che contiene il titolo della punta del fumetto.

lpszText
[in] Puntatore a una stringa Unicode che contiene il testo della descrizione del fumetto.

ttiIcon
[in] Valore INT che specifica il tipo di icona da associare alla punta del fumetto. Il valore predefinito è TTI_NONE. Per altre informazioni, vedere il ttiIcon membro della struttura EDITBALLOONTIP .

Valore restituito

TRUE se questo metodo ha esito positivo; in caso contrario, FALSE.

Osservazioni:

Questa funzione invia il messaggio di EM_SHOWBALLOONTIP , descritto in Windows SDK. Per altre informazioni, vedere la macro Edit_ShowBalloonTip .

Esempio

Il primo esempio di codice definisce una variabile, m_cedit, usata per accedere al controllo di modifica corrente. Questa variabile viene usata nell'esempio riportato di seguito.

public:
// Variable to access the edit control.
CEdit m_cedit;

Nell'esempio di codice successivo viene visualizzato un suggerimento per un controllo di modifica. Il metodo CEdit::ShowBalloonTip specifica un titolo e un testo di suggerimento per il fumetto.

m_cedit.ShowBalloonTip(
    _T("CEdit Balloon Tip"), // title
    _T("Here's a tip!"),     // text
    TTI_INFO);

CEdit::Annulla

Chiamare questa funzione per annullare l'ultima operazione di controllo di modifica.

BOOL Undo();

Valore restituito

Per un controllo di modifica a riga singola, il valore restituito è sempre diverso da zero. Per un controllo di modifica a più righe, il valore restituito è diverso da zero se l'operazione di annullamento ha esito positivo oppure 0 se l'operazione di annullamento ha esito negativo.

Osservazioni:

È anche possibile annullare un'operazione di annullamento. Ad esempio, è possibile ripristinare il testo eliminato con la prima chiamata a Undo. Finché non è presente alcuna operazione di modifica, è possibile rimuovere di nuovo il testo con una seconda chiamata a Undo.

Per altre informazioni, vedere EM_UNDO in Windows SDK.

Esempio

// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
   m_myEdit.Undo();

Vedi anche

MFC Sample CALCDRIV
CMNCTRL2 di esempio MFC
Classe CWnd
Grafico della gerarchia
Classe CWnd
Classe CButton
Classe CComboBox
Classe CListBox
Classe CScrollBar
Classe CStatic
Classe CDialog