Share via


CEdit, classe

Fournit les fonctionnalités d'un contrôle d'édition Windows.

Syntaxe

class CEdit : public CWnd

Membres

Constructeurs publics

Nom Description
CEdit ::CEdit Construit un CEdit objet de contrôle.

Méthodes publiques

Nom Description
CEdit ::CanUndo Détermine si une opération de contrôle d’édition peut être annulée.
CEdit ::CharFromPos Récupère les index de ligne et de caractères pour le caractère le plus proche d’une position spécifiée.
CEdit ::Clear Supprime (efface) la sélection actuelle (le cas échéant) dans le contrôle d’édition.
CEdit ::Copy Copie la sélection actuelle (le cas échéant) dans le contrôle d’édition dans le Presse-papiers au format CF_TEXT.
CEdit ::Create Crée le contrôle d’édition Windows et l’attache à l’objet CEdit .
CEdit ::Cut Supprime (coupe) la sélection actuelle (le cas échéant) dans le contrôle d’édition et copie le texte supprimé dans le Presse-papiers au format CF_TEXT.
CEdit ::EmptyUndoBuffer Réinitialise (efface) l’indicateur d’annulation d’un contrôle d’édition.
CEdit ::FmtLines Définit l’inclusion de caractères de saut de ligne souples activés ou désactivés dans un contrôle d’édition à plusieurs lignes.
CEdit ::GetCueBanner Récupère le texte affiché en tant que repère de texte, ou conseil, dans un contrôle d’édition lorsque le contrôle est vide et n’a pas le focus.
CEdit ::GetFirstVisibleLine Détermine la ligne la plus visible dans un contrôle d’édition.
CEdit ::GetHandle Récupère un handle à la mémoire actuellement allouée pour un contrôle d’édition à plusieurs lignes.
CEdit ::GetHighlight Obtient les index des caractères de début et de fin dans une plage de texte mise en surbrillance dans le contrôle d’édition actuel.
CEdit ::GetLimitText Obtient la quantité maximale de texte CEdit pouvant contenir.
CEdit ::GetLine Récupère une ligne de texte à partir d’un contrôle d’édition.
CEdit ::GetLineCount Récupère le nombre de lignes d’un contrôle d’édition à plusieurs lignes.
CEdit ::GetMargins Obtient les marges gauche et droite pour cela CEdit.
CEdit ::GetModify Détermine si le contenu d’un contrôle d’édition a été modifié.
CEdit ::GetPasswordChar Récupère le caractère de mot de passe affiché dans un contrôle d’édition lorsque l’utilisateur entre du texte.
CEdit ::GetRect Obtient le rectangle de mise en forme d’un contrôle d’édition.
CEdit ::GetSel Obtient les premières et dernières positions de caractère de la sélection actuelle dans un contrôle d’édition.
CEdit ::HideBalloonTip Masque toute bulle associée au contrôle d’édition actuel.
CEdit ::LimitText Limite la longueur du texte que l’utilisateur peut entrer dans un contrôle d’édition.
CEdit ::LineFromChar Récupère le numéro de ligne de la ligne qui contient l’index de caractère spécifié.
CEdit ::LineIndex Récupère l’index de caractère d’une ligne dans un contrôle d’édition à plusieurs lignes.
CEdit ::LineLength Récupère la longueur d’une ligne dans un contrôle d’édition.
CEdit ::LineScroll Fait défiler le texte d’un contrôle d’édition à plusieurs lignes.
CEdit ::P aste Insère les données du Presse-papiers dans le contrôle d’édition à la position actuelle du curseur. Les données sont insérées uniquement si le Presse-papiers contient des données au format CF_TEXT.
CEdit ::P osFromChar Récupère les coordonnées du coin supérieur gauche d’un index de caractère spécifié.
CEdit ::ReplaceSel Remplace la sélection actuelle dans un contrôle d’édition par le texte spécifié.
CEdit ::SetCueBanner Définit le texte affiché en tant que repère de texte, ou conseil, dans un contrôle d’édition lorsque le contrôle est vide et n’a pas le focus.
CEdit ::SetHandle Définit le handle sur la mémoire locale qui sera utilisée par un contrôle d’édition à plusieurs lignes.
CEdit ::SetHighlight Met en surbrillance une plage de texte affichée dans le contrôle d’édition actuel.
CEdit ::SetLimitText Définit la quantité maximale de texte CEdit pouvant contenir.
CEdit ::SetMargins Définit les marges gauche et droite pour ce CEdit.
CEdit ::SetModify Définit ou efface l’indicateur de modification d’un contrôle d’édition.
CEdit ::SetPasswordChar Définit ou supprime un caractère de mot de passe affiché dans un contrôle d’édition lorsque l’utilisateur entre du texte.
CEdit ::SetReadOnly Définit l’état en lecture seule d’un contrôle d’édition.
CEdit ::SetRect Définit le rectangle de mise en forme d’un contrôle d’édition à plusieurs lignes et met à jour le contrôle.
CEdit ::SetRectNP Définit le rectangle de mise en forme d’un contrôle d’édition à plusieurs lignes sans redessiner la fenêtre de contrôle.
CEdit ::SetSel Sélectionne une plage de caractères dans un contrôle d’édition.
CEdit ::SetTabStops Définit les taquets de tabulation dans un contrôle d’édition à plusieurs lignes.
CEdit ::ShowBalloonTip Affiche une bulle associée au contrôle d’édition actuel.
CEdit ::Annuler Inverse la dernière opération de contrôle d’édition.

Notes

Un contrôle d’édition est une fenêtre enfant rectangulaire dans laquelle l’utilisateur peut entrer du texte.

Vous pouvez créer un contrôle d’édition à partir d’un modèle de boîte de dialogue ou directement dans votre code. Dans les deux cas, appelez d’abord le constructeur CEdit pour construire l’objet CEdit , puis appelez la fonction Créer un membre pour créer le contrôle d’édition Windows et l’attacher à l’objet CEdit .

La construction peut être un processus en une étape dans une classe dérivée de CEdit. Écrivez un constructeur pour la classe dérivée et appelez Create à partir du constructeur.

CEdit hérite des fonctionnalités significatives de CWnd. Pour définir et récupérer du texte à partir d’un CEdit objet, utilisez les CWnd fonctions membres SetWindowText et GetWindowText, qui définissent ou obtiennent l’intégralité du contenu d’un contrôle d’édition, même s’il s’agit d’un contrôle multiligne. Les lignes de texte d’un contrôle multiligne sont séparées par des séquences de caractères « \r\n ». En outre, si un contrôle d’édition est multiligne, obtenez et définissez une partie du texte du contrôle en appelant les CEdit fonctions membres GetLine, SetSel, GetSel et ReplaceSel.

Si vous souhaitez gérer les messages de notification Windows envoyés par un contrôle d’édition à son parent (généralement une classe dérivée de CDialog), ajoutez une entrée de mappage de messages et une fonction membre de gestionnaire de messages à la classe parente pour chaque message.

Chaque entrée de carte de messages prend la forme suivante :

ON_NOTIFICATION(id,memberFxn)

id spécifie l’ID de fenêtre enfant du contrôle d’édition envoyant la notification et memberFxn est le nom de la fonction membre parente que vous avez écrite pour gérer la notification.

Le prototype de fonction parent est le suivant :

afx_msg void memberFxn ( ) ;

Voici une liste des entrées de mappage de messages potentielles et une description des cas dans lesquels elles seraient envoyées au parent :

  • ON_EN_CHANGE L’utilisateur a effectué une action qui a peut-être modifié du texte dans un contrôle d’édition. Contrairement au message de notification EN_UPDATE, ce message de notification est envoyé après que Windows met à jour l’affichage.

  • ON_EN_ERRSPACE Le contrôle d’édition ne peut pas allouer suffisamment de mémoire pour répondre à une requête spécifique.

  • ON_EN_HSCROLL L’utilisateur clique sur la barre de défilement horizontale d’un contrôle d’édition. La fenêtre parente est avertie avant la mise à jour de l’écran.

  • ON_EN_KILLFOCUS Le contrôle d’édition perd le focus d’entrée.

  • ON_EN_MAXTEXT L’insertion actuelle a dépassé le nombre spécifié de caractères pour le contrôle d’édition et a été tronqué. Envoyé également lorsqu’un contrôle d’édition n’a pas le style ES_AUTOHSCROLL et que le nombre de caractères à insérer dépasse la largeur du contrôle d’édition. Également envoyé lorsqu’un contrôle d’édition n’a pas le style ES_AUTOVSCROLL et que le nombre total de lignes résultant d’une insertion de texte dépasse la hauteur du contrôle d’édition.

  • ON_EN_SETFOCUS Envoyé lorsqu’un contrôle d’édition reçoit le focus d’entrée.

  • ON_EN_UPDATE Le contrôle d’édition est sur le point d’afficher du texte modifié. Envoyé une fois que le contrôle a mis en forme le texte, mais avant qu’il écrane le texte afin que la taille de la fenêtre puisse être modifiée, si nécessaire.

  • ON_EN_VSCROLL L’utilisateur clique sur la barre de défilement verticale d’un contrôle d’édition. La fenêtre parente est avertie avant la mise à jour de l’écran.

Si vous créez un CEdit objet dans une boîte de dialogue, l’objet CEdit est automatiquement détruit lorsque l’utilisateur ferme la boîte de dialogue.

Si vous créez un objet à partir d’une CEdit ressource de boîte de dialogue à l’aide de l’éditeur de dialogue, l’objet CEdit est automatiquement détruit lorsque l’utilisateur ferme la boîte de dialogue.

Si vous créez un CEdit objet dans une fenêtre, vous devrez peut-être également le détruire. Si vous créez l’objet CEdit sur la pile, il est détruit automatiquement. Si vous créez l’objet CEdit sur le tas à l’aide de la new fonction, vous devez appeler delete l’objet pour le détruire lorsque l’utilisateur termine le contrôle d’édition Windows. Si vous allouez une mémoire dans l’objet CEdit , remplacez le CEdit destructeur pour supprimer les allocations.

Pour modifier certains styles dans un contrôle d’édition (par exemple, ES_READONLY), vous devez envoyer des messages spécifiques au contrôle au lieu d’utiliser ModifyStyle. Consultez Modifier les styles de contrôle dans le Kit de développement logiciel (SDK) Windows.

Pour plus d’informations sur CEdit, consultez Contrôles.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CEdit

Spécifications

En-tête : afxwin.h

CEdit ::CanUndo

Appelez cette fonction pour déterminer si la dernière opération de modification peut être annulée.

BOOL CanUndo() const;

Valeur de retour

Différent de zéro si la dernière opération de modification peut être annulée par un appel à la Undo fonction membre ; 0 s’il ne peut pas être annulé.

Notes

Pour plus d’informations, consultez EM_CANUNDO dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::Undo.

CEdit ::CEdit

Construit un objet CEdit.

CEdit();

Notes

Utilisez Create pour construire le contrôle d’édition Windows.

Exemple

// Declare a local CEdit object.
CEdit myEdit;

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

CEdit ::CharFromPos

Appelez cette fonction pour récupérer les index de ligne et de caractères de base zéro du caractère le plus proche du point spécifié dans ce CEdit contrôle

int CharFromPos(CPoint pt) const;

Paramètres

pt
Coordonnées d’un point dans la zone cliente de cet CEdit objet.

Valeur de retour

Index de caractères dans le MOT de bas ordre et index de ligne dans le MOT de classement élevé.

Notes

Remarque

Cette fonction membre est disponible à compter de Windows 95 et Windows NT 4.0.

Pour plus d’informations, consultez EM_CHARFROMPOS dans le Kit de développement logiciel (SDK) Windows.

Exemple

// 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

Appelez cette fonction pour supprimer (effacer) la sélection actuelle (le cas échéant) dans le contrôle d’édition.

void Clear();

Notes

La suppression effectuée par Clear peut être annulée en appelant la fonction membre Annuler .

Pour supprimer la sélection actuelle et placer le contenu supprimé dans le Presse-papiers, appelez la fonction Membre Cut .

Pour plus d’informations, consultez WM_CLEAR dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::Copy

Appelez cette fonction pour coyquer la sélection actuelle (le cas échéant) dans le contrôle d’édition dans le Presse-papiers au format CF_TEXT.

void Copy();

Notes

Pour plus d’informations, consultez WM_COPY dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::Create

Crée le contrôle d’édition Windows et l’attache à l’objet CEdit .

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

Paramètres

dwStyle
Spécifie le style du contrôle d’édition. Appliquez n’importe quelle combinaison de styles de modification au contrôle.

Rect
Spécifie la taille et la position du contrôle d’édition. Il peut s’agir d’un objet ou RECT d’une CRect structure.

pParentWnd
Spécifie la fenêtre parente du contrôle d’édition (généralement a CDialog). Elle ne doit pas être NULL.

nID
Spécifie l’ID du contrôle d’édition.

Valeur de retour

Différent de zéro si l’initialisation réussit ; sinon 0.

Notes

Vous construisez un CEdit objet en deux étapes. Tout d’abord, appelez le CEdit constructeur, puis appelez Create, qui crée le contrôle d’édition Windows et l’attache à l’objet CEdit .

Quand Create il s’exécute, Windows envoie les messages WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE et WM_GETMINMAXINFO au contrôle d’édition.

Ces messages sont gérés par défaut par les fonctions membres OnNcCreate, OnNcCalcSize, OnCreate et OnGetMinMaxInfo dans la CWnd classe de base. Pour étendre la gestion des messages par défaut, dérivez une classe de CEdit, ajoutez un mappage de messages à la nouvelle classe et remplacez les fonctions membres du gestionnaire de messages ci-dessus. Remplacez OnCreate, par exemple, pour effectuer l’initialisation nécessaire pour la nouvelle classe.

Appliquez les styles de fenêtre suivants à un contrôle d’édition.

  • WS_CHILD Always

  • WS_VISIBLE Généralement

  • WS_DISABLED Rarement

  • WS_GROUP Pour regrouper les contrôles

  • WS_TABSTOP Pour inclure le contrôle de modification dans l’ordre de tabulation

Exemple

// 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

Appelez cette fonction pour supprimer (couper) la sélection actuelle (le cas échéant) dans le contrôle d’édition et copier le texte supprimé dans le Presse-papiers au format CF_TEXT.

void Cut();

Notes

La suppression effectuée par Cut peut être annulée en appelant la fonction membre Annuler .

Pour supprimer la sélection actuelle sans placer le texte supprimé dans le Presse-papiers, appelez la fonction Membre Clear .

Pour plus d’informations, consultez WM_CUT dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::EmptyUndoBuffer

Appelez cette fonction pour réinitialiser (effacer) l’indicateur d’annulation d’un contrôle d’édition.

void EmptyUndoBuffer();

Notes

Le contrôle d’édition ne pourra plus annuler la dernière opération. L’indicateur d’annulation est défini chaque fois qu’une opération dans le contrôle d’édition peut être annulée.

L’indicateur d’annulation est automatiquement effacé chaque fois que les fonctions membres SetWindowText ou SetHandleCWnd sont appelées.

Pour plus d’informations, consultez EM_EMPTYUNDOBUFFER dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::FmtLines

Appelez cette fonction pour définir l’inclusion de caractères de saut de ligne souples activés ou désactivés dans un contrôle d’édition à plusieurs lignes.

BOOL FmtLines(BOOL bAddEOL);

Paramètres

bAddEOL
Spécifie si les caractères de saut de ligne souple doivent être insérés. La valeur TRUE insère les caractères ; la valeur FALSE les supprime.

Valeur de retour

Différent de zéro si une mise en forme se produit ; sinon 0.

Notes

Un saut de ligne souple se compose de deux retours chariots et d’un flux de ligne inséré à la fin d’une ligne qui est rompue en raison de l’encapsulation de mots. Un saut de ligne dure se compose d’un retour chariot et d’un saut de ligne. Les lignes qui se terminent par un saut de ligne dur ne sont pas affectées par FmtLines.

Windows répond uniquement si l’objet CEdit est un contrôle d’édition à plusieurs lignes.

FmtLines affecte uniquement la mémoire tampon retournée par GetHandle et le texte retourné par WM_GETTEXT. Il n’a aucun impact sur l’affichage du texte dans le contrôle d’édition.

Pour plus d’informations, consultez EM_OGF LINES dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

Récupère le texte affiché en tant que repère de texte, ou conseil, dans un contrôle d’édition lorsque le contrôle est vide.

BOOL GetCueBanner(
    LPWSTR lpszText,
    int cchText) const;

CString GetCueBanner() const;

Paramètres

lpszText
[out] Pointeur vers une chaîne qui contient le texte de l’indicateur.

cchText
[in] Nombre de caractères pouvant être reçus. Ce nombre inclut le caractère NULL de fin.

Valeur de retour

Pour la première surcharge, TRUE si la méthode réussit ; sinon FALSE.

Pour la deuxième surcharge, une chaîne CString qui contient le texte de l’indicateur si la méthode réussit ; sinon, la chaîne vide («  »).

Notes

Cette méthode envoie le message EM_GETCUEBANNER , qui est décrit dans le Kit de développement logiciel (SDK) Windows. Pour plus d’informations, consultez la macro Edit_GetCueBannerText .

CEdit ::GetFirstVisibleLine

Appelez cette fonction pour déterminer la ligne visible la plus haute dans un contrôle d’édition.

int GetFirstVisibleLine() const;

Valeur de retour

Index de base zéro de la ligne visible la plus haute. Pour les contrôles d’édition à ligne unique, la valeur de retour est 0.

Notes

Pour plus d’informations, consultez EM_GETFIRSTVISIBLELINE dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

Appelez cette fonction pour récupérer un handle à la mémoire actuellement allouée pour un contrôle d’édition à plusieurs lignes.

HLOCAL GetHandle() const;

Valeur de retour

Handle de mémoire locale qui identifie la mémoire tampon contenant le contenu du contrôle d’édition. Si une erreur se produit, telle que l’envoi du message à un contrôle d’édition à une seule ligne, la valeur de retour est 0.

Notes

Le handle est un handle de mémoire local et peut être utilisé par l’une des fonctions de mémoire Windows locales qui prennent un handle de mémoire local en tant que paramètre.

GetHandle est traité uniquement par des contrôles d’édition à plusieurs lignes.

Appelez GetHandle un contrôle d’édition à plusieurs lignes dans une boîte de dialogue uniquement si la boîte de dialogue a été créée avec l’indicateur de style DS_LOCALEDIT défini. Si le style DS_LOCALEDIT n’est pas défini, vous obtiendrez toujours une valeur de retour différente de zéro, mais vous ne pourrez pas utiliser la valeur retournée.

Remarque

GetHandle ne fonctionne pas avec Windows 95/98. Si vous appelez GetHandle dans Windows 95/98, il retourne NULL. GetHandle fonctionne comme décrit sous Windows NT, versions 3.51 et ultérieures.

Pour plus d’informations, consultez EM_GETHANDLE dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

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

::LocalUnlock(h);

CEdit ::GetHighlight

Obtient les index des premiers et derniers caractères d’une plage de texte mise en surbrillance dans le contrôle d’édition actuel.

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

Paramètres

pichStart
[out] Index de base zéro du premier caractère de la plage de texte mise en surbrillance.

pichEnd
[out] Index de base zéro du dernier caractère de la plage de texte mise en surbrillance.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Cette méthode envoie le message EM_GETHILITE , qui est décrit dans le Kit de développement logiciel (SDK) Windows. Les deux SetHighlight sont GetHighlight actuellement activés pour les builds UNICODE uniquement.

CEdit ::GetLimitText

Appelez cette fonction membre pour obtenir la limite de texte de cet CEdit objet.

UINT GetLimitText() const;

Valeur de retour

Limite de texte actuelle, dans les TCHAR, pour cet CEdit objet.

Notes

La limite de texte correspond à la quantité maximale de texte, dans les TCHAR, que le contrôle d’édition peut accepter.

Remarque

Cette fonction membre est disponible à compter de Windows 95 et Windows NT 4.0.

Pour plus d’informations, consultez EM_GETLIMITTEXT dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

Appelez cette fonction pour récupérer une ligne de texte à partir d’un contrôle d’édition et la placer dans lpszBuffer.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

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

Paramètres

nIndex
Spécifie le numéro de ligne à récupérer à partir d’un contrôle d’édition à plusieurs lignes. Les numéros de ligne sont de base zéro ; la valeur 0 spécifie la première ligne. Ce paramètre est ignoré par un contrôle d’édition à ligne unique.

lpszBuffer
Pointe vers la mémoire tampon qui reçoit une copie de la ligne. Le premier mot de la mémoire tampon doit spécifier le nombre maximal de TCHAR qui peuvent être copiés dans la mémoire tampon.

nMaxLength
Spécifie le nombre maximal de caractères TCHAR qui peuvent être copiés dans la mémoire tampon. GetLine place cette valeur dans le premier mot de lpszBuffer avant d’appeler Windows.

Valeur de retour

Nombre de caractères réellement copiés. La valeur de retour est 0 si le numéro de ligne spécifié par nIndex est supérieur au nombre de lignes dans le contrôle d’édition.

Notes

La ligne copiée ne contient pas de caractère d’arrêt null.

Pour plus d’informations, consultez EM_GETLINE dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::GetLineCount.

CEdit ::GetLineCount

Appelez cette fonction pour récupérer le nombre de lignes dans un contrôle d’édition à plusieurs lignes.

int GetLineCount() const;

Valeur de retour

Entier contenant le nombre de lignes dans le contrôle d’édition à plusieurs lignes. Si aucun texte n’a été entré dans le contrôle d’édition, la valeur de retour est 1.

Notes

GetLineCount est traité uniquement par les contrôles d’édition à plusieurs lignes.

Pour plus d’informations, consultez EM_GETLINECOUNT dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

Appelez cette fonction membre pour récupérer les marges gauche et droite de ce contrôle d’édition.

DWORD GetMargins() const;

Valeur de retour

Largeur de la marge gauche dans le mot de bas ordre et largeur de la marge droite dans l’ordre élevé WORD.

Notes

Les marges sont mesurées en pixels.

Remarque

Cette fonction membre est disponible à compter de Windows 95 et Windows NT 4.0.

Pour plus d’informations, consultez EM_GETMARGINS dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEditView ::GetEditCtrl.

CEdit ::GetModify

Appelez cette fonction pour déterminer si le contenu d’un contrôle d’édition a été modifié.

BOOL GetModify() const;

Valeur de retour

Différent de zéro si le contenu du contrôle d’édition a été modifié ; 0 s’ils sont restés inchangés.

Notes

Windows conserve un indicateur interne indiquant si le contenu du contrôle d’édition a été modifié. Cet indicateur est effacé lorsque le contrôle d’édition est créé pour la première fois et peut également être effacé en appelant la fonction membre SetModify .

Pour plus d’informations, consultez EM_GETMODIFY dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::GetPasswordChar

Appelez cette fonction pour récupérer le caractère de mot de passe affiché dans un contrôle d’édition lorsque l’utilisateur entre du texte.

TCHAR GetPasswordChar() const;

Valeur de retour

Spécifie le caractère à afficher au lieu du caractère tapé par l’utilisateur. La valeur de retour est NULL si aucun caractère de mot de passe n’existe.

Notes

Si vous créez le contrôle d’édition avec le style ES_PASSWORD, la DLL qui prend en charge le contrôle détermine le caractère de mot de passe par défaut. Le manifeste ou la méthode InitCommonControlsEx détermine la DLL qui prend en charge le contrôle d’édition. Si user32.dll prend en charge le contrôle d’édition, le caractère de mot de passe par défaut est ASTERISK ('*', U+002A). Si comctl32.dll version 6 prend en charge le contrôle d’édition, le caractère par défaut est BLACK CIRCLE ('●', U+25CF). Pour plus d’informations sur la DLL et la version qui prennent en charge les contrôles courants, consultez Shell et Versions common Controls.

Cette méthode envoie le message EM_GETPASSWORDCHAR , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::GetRect

Appelez cette fonction pour obtenir le rectangle de mise en forme d’un contrôle d’édition.

void GetRect(LPRECT lpRect) const;

Paramètres

lpRect
Pointe vers la RECT structure qui reçoit le rectangle de mise en forme.

Notes

Le rectangle de mise en forme est le rectangle de limitation du texte, qui est indépendant de la taille de la fenêtre de contrôle d’édition.

Le rectangle de mise en forme d’un contrôle d’édition à plusieurs lignes peut être modifié par les fonctions membres SetRect et SetRectNP .

Pour plus d’informations, consultez EM_GETRECT dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::LimitText.

CEdit ::GetSel

Appelez cette fonction pour obtenir les positions des caractères de début et de fin de la sélection actuelle (le cas échéant) dans un contrôle d’édition, à l’aide de la valeur de retour ou des paramètres.

DWORD GetSel() const;

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

Paramètres

nStartChar
Référence à un entier qui recevra la position du premier caractère dans la sélection actuelle.

nEndChar
Référence à un entier qui recevra la position du premier caractère non sélectionné au-delà de la fin de la sélection actuelle.

Valeur de retour

La version qui retourne un DWORD retourne une valeur qui contient la position de départ dans le mot de bas ordre et la position du premier caractère non sélectionné après la fin de la sélection dans le mot de classement élevé.

Notes

Pour plus d’informations, consultez EM_GETSEL dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::HideBalloonTip

Masque toute bulle associée au contrôle d’édition actuel.

BOOL HideBalloonTip();

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Cette fonction envoie le message EM_HIDEBALLOONTIP , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

CEdit ::LimitText

Appelez cette fonction pour limiter la longueur du texte que l’utilisateur peut entrer dans un contrôle d’édition.

void LimitText(int nChars = 0);

Paramètres

nChars
Spécifie la longueur (en TCHAR) du texte que l’utilisateur peut entrer. Si ce paramètre est 0, la longueur du texte est définie sur UINT_MAX octets. C’est le paramétrage par défaut.

Notes

La modification de la limite de texte limite uniquement le texte que l’utilisateur peut entrer. Il n’a aucun effet sur le texte déjà présent dans le contrôle d’édition, ni n’affecte-t-il la longueur du texte copié dans le contrôle d’édition par la fonction membre SetWindowText dans CWnd. Si une application utilise la SetWindowText fonction pour placer plus de texte dans un contrôle d’édition que ce qui est spécifié dans l’appel LimitText, l’utilisateur peut supprimer n’importe quel texte dans le contrôle d’édition. Toutefois, la limite de texte empêchera l’utilisateur de remplacer le texte existant par un nouveau texte, sauf si la suppression de la sélection actuelle entraîne la chute du texte sous la limite de texte.

Remarque

Dans Win32 (Windows NT et Windows 95/98), SetLimitText remplace cette fonction.

Pour plus d’informations, consultez EM_LIMITTEXT dans le Kit de développement logiciel (SDK) Windows.

Exemple

// 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

Appelez cette fonction pour récupérer le numéro de ligne de la ligne qui contient l’index de caractères spécifié.

int LineFromChar(int nIndex = -1) const;

Paramètres

nIndex
Contient la valeur d’index de base zéro pour le caractère souhaité dans le texte du contrôle d’édition, ou contient -1. Si nIndex est -1, il spécifie la ligne actuelle, autrement dit, la ligne qui contient le signe.

Valeur de retour

Numéro de ligne de base zéro de la ligne contenant l’index de caractère spécifié par nIndex. Si nIndex est -1, le nombre de lignes qui contient le premier caractère de la sélection est retourné. S’il n’existe aucune sélection, le numéro de ligne actuel est retourné.

Notes

Un index de caractères est le nombre de caractères du début du contrôle d’édition.

Cette fonction membre est utilisée uniquement par les contrôles d’édition à plusieurs lignes.

Pour plus d’informations, consultez EM_LINEFROMCHAR dans le Kit de développement logiciel (SDK) Windows.

Exemple

// 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

Appelez cette fonction pour récupérer l’index de caractère d’une ligne dans un contrôle d’édition à plusieurs lignes.

int LineIndex(int nLine = -1) const;

Paramètres

nLine
Contient la valeur d’index de la ligne souhaitée dans le texte du contrôle d’édition ou contient -1. Si nLine est -1, elle spécifie la ligne actuelle, autrement dit, la ligne qui contient le trait.

Valeur de retour

Index de caractère de la ligne spécifiée dans nLine ou -1 si le numéro de ligne spécifié est supérieur au nombre de lignes dans le contrôle d’édition.

Notes

L’index de caractères est le nombre de caractères du début du contrôle d’édition à la ligne spécifiée.

Cette fonction membre est traitée uniquement par les contrôles d’édition à plusieurs lignes.

Pour plus d’informations, consultez EM_LINEINDEX dans le Kit de développement logiciel (SDK) Windows.

Exemple

// 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

Récupère la longueur d’une ligne dans un contrôle d’édition.

int LineLength(int nLine = -1) const;

Paramètres

nLine
Index de base zéro d’un caractère dans la ligne dont la longueur doit être récupérée. La valeur par défaut est -1.

Valeur de retour

Pour les contrôles d’édition à ligne unique, la valeur de retour est la longueur, dans les TCHAR, du texte du contrôle d’édition.

Pour les contrôles d’édition multiligne, la valeur de retour est la longueur, dans les TCHAR, de la ligne spécifiée par le paramètre nLine . Pour le texte ANSI, la longueur est le nombre d’octets dans la ligne ; pour le texte Unicode, la longueur est le nombre de caractères dans la ligne. La longueur n’inclut pas le caractère retour chariot à la fin de la ligne.

Si le paramètre nLine est supérieur au nombre de caractères dans le contrôle, la valeur de retour est égale à zéro.

Si le paramètre nLine est -1, la valeur de retour est le nombre de caractères non sélectionnés dans les lignes qui contiennent des caractères sélectionnés. Par exemple, si la sélection s’étend du quatrième caractère d’une ligne au huitième caractère de la fin de la ligne suivante, la valeur de retour est 10. C’est-à-dire trois caractères sur la première ligne et sept sur la suivante.

Pour plus d’informations sur le type TCHAR, consultez la ligne TCHAR dans la table dans les types de données Windows.

Notes

Cette méthode est prise en charge par le message EM_LINELENGTH , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::LineIndex.

CEdit ::LineScroll

Appelez cette fonction pour faire défiler le texte d’un contrôle d’édition à plusieurs lignes.

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

Paramètres

nLines
Spécifie le nombre de lignes à faire défiler verticalement.

nChars
Spécifie le nombre de positions de caractères à faire défiler horizontalement. Cette valeur est ignorée si le contrôle d’édition a le style ES_RIGHT ou ES_CENTER.

Notes

Cette fonction membre est traitée uniquement par les contrôles d’édition à plusieurs lignes.

Le contrôle d’édition ne fait pas défiler verticalement la dernière ligne de texte dans le contrôle d’édition. Si la ligne actuelle plus le nombre de lignes spécifiées par nLines dépasse le nombre total de lignes dans le contrôle d’édition, la valeur est ajustée afin que la dernière ligne du contrôle d’édition soit affichée en haut de la fenêtre de contrôle d’édition.

LineScroll peut être utilisé pour faire défiler horizontalement le dernier caractère de n’importe quelle ligne.

Pour plus d’informations, consultez EM_LINESCROLL dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::GetFirstVisibleLine.

CEdit ::P aste

Appelez cette fonction pour insérer les données du Presse-papiers dans le CEdit point d’insertion.

void Paste();

Notes

Les données sont insérées uniquement si le Presse-papiers contient des données au format CF_TEXT.

Pour plus d’informations, consultez WM_PASTE dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::P osFromChar

Appelez cette fonction pour obtenir la position (coin supérieur gauche) d’un caractère donné dans cet CEdit objet.

CPoint PosFromChar(UINT nChar) const;

Paramètres

Nchar
Index de base zéro du caractère spécifié.

Valeur de retour

Coordonnées du coin supérieur gauche du caractère spécifié par nChar.

Notes

Le caractère est spécifié en donnant sa valeur d’index de base zéro. Si nChar est supérieur à l’index du dernier caractère de cet CEdit objet, la valeur de retour spécifie les coordonnées de la position du caractère juste après le dernier caractère de cet CEdit objet.

Remarque

Cette fonction membre est disponible à compter de Windows 95 et Windows NT 4.0.

Pour plus d’informations, consultez EM_POSFROMCHAR dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::LineFromChar.

CEdit ::ReplaceSel

Appelez cette fonction pour remplacer la sélection actuelle dans un contrôle d’édition par le texte spécifié par lpszNewText.

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

Paramètres

lpszNewText
Pointe vers une chaîne terminée par null contenant le texte de remplacement.

bCanUndo
Pour spécifier que cette fonction peut être annulée, définissez la valeur de ce paramètre sur TRUE. La valeur par défaut est FALSE.

Notes

Remplace uniquement une partie du texte dans un contrôle d’édition. Si vous souhaitez remplacer tout le texte, utilisez la fonction membre CWnd ::SetWindowText .

S’il n’existe aucune sélection actuelle, le texte de remplacement est inséré à l’emplacement actuel du curseur.

Pour plus d’informations, consultez EM_REPLACESEL dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::LineIndex.

CEdit ::SetCueBanner

Définit le texte affiché en tant que repère de texte, ou conseil, dans un contrôle d’édition lorsque le contrôle est vide.

BOOL SetCueBanner(LPCWSTR lpszText);

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

Paramètres

lpszText
[in] Pointeur vers une chaîne qui contient l’indicateur à afficher dans le contrôle d’édition.

fDrawWhenFocused
[in] Si la valeur est FALSE, la bannière d’indicateur n’est pas dessinée lorsque l’utilisateur clique dans le contrôle d’édition et donne au contrôle le focus.

Si la valeur est TRUE, la bannière d’indicateur est dessinée même lorsque le contrôle a le focus. La bannière d’indicateur disparaît lorsque l’utilisateur commence à taper dans le contrôle.

La valeur par défaut est FALSE.

Valeur de retour

TRUE si la méthode réussit ; sinon FALSE.

Notes

Cette méthode envoie le message EM_SETCUEBANNER , qui est décrit dans le Kit de développement logiciel (SDK) Windows. Pour plus d’informations, consultez la macro Edit_SetCueBannerTextFocused .

Exemple

L’exemple suivant illustre la méthode CEdit ::SetCueBanner .

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

CEdit ::SetHandle

Appelez cette fonction pour définir le handle sur la mémoire locale qui sera utilisée par un contrôle d’édition à plusieurs lignes.

void SetHandle(HLOCAL hBuffer);

Paramètres

hBuffer
Contient un handle vers la mémoire locale. Ce handle doit avoir été créé par un appel précédent à la fonction Windows LocalAlloc à l’aide de l’indicateur LMEM_MOVEABLE. La mémoire est supposée contenir une chaîne terminée par null. Si ce n’est pas le cas, le premier octet de la mémoire allouée doit être défini sur 0.

Notes

Le contrôle d’édition utilise ensuite cette mémoire tampon pour stocker le texte actuellement affiché au lieu d’allouer sa propre mémoire tampon.

Cette fonction membre est traitée uniquement par les contrôles d’édition à plusieurs lignes.

Avant qu’une application définit un nouveau handle de mémoire, elle doit utiliser la fonction membre GetHandle pour obtenir le handle dans la mémoire tampon de mémoire actuelle et libérer cette mémoire à l’aide de la LocalFree fonction Windows.

SetHandle efface la mémoire tampon d’annulation (la fonction membre CanUndo retourne ensuite 0) et l’indicateur de modification interne (la fonction membre GetModify retourne ensuite 0). La fenêtre de contrôle d’édition est redessinée.

Vous pouvez utiliser cette fonction membre dans un contrôle d’édition à plusieurs lignes dans une boîte de dialogue uniquement si vous avez créé la boîte de dialogue avec le jeu d’indicateurs de style DS_LOCALEDIT.

Remarque

GetHandle ne fonctionne pas avec Windows 95/98. Si vous appelez GetHandle dans Windows 95/98, il retourne NULL. GetHandle fonctionne comme décrit sous Windows NT, versions 3.51 et ultérieures.

Pour plus d’informations, consultez EM_SETHANDLE, LocalAlloc et LocalFree dans le Kit de développement logiciel (SDK) Windows.

Exemple

// 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

Met en surbrillance une plage de texte affichée dans le contrôle d’édition actuel.

void SetHighlight(
    int ichStart,
    int ichEnd);

Paramètres

ichStart
[in] Index de base zéro du premier caractère de la plage de texte à mettre en surbrillance.

ichEnd
[in] Index de base zéro du dernier caractère de la plage de texte à mettre en surbrillance.

Notes

Cette méthode envoie le message EM_SETHILITE , qui est décrit dans le Kit de développement logiciel (SDK) Windows. Cette méthode envoie le message EM_SETHILITE , qui est décrit dans le Kit de développement logiciel (SDK) Windows. Les deux SetHighlight et GetHighlight sont activés uniquement pour les builds UNICODE.

CEdit ::SetLimitText

Appelez cette fonction membre pour définir la limite de texte pour cet CEdit objet.

void SetLimitText(UINT nMax);

Paramètres

Nmax
Nouvelle limite de texte, en caractères.

Notes

La limite de texte correspond à la quantité maximale de texte, en caractères, que le contrôle d’édition peut accepter.

La modification de la limite de texte limite uniquement le texte que l’utilisateur peut entrer. Il n’a aucun effet sur le texte déjà présent dans le contrôle d’édition, ni n’affecte-t-il la longueur du texte copié dans le contrôle d’édition par la fonction membre SetWindowText dans CWnd. Si une application utilise la SetWindowText fonction pour placer plus de texte dans un contrôle d’édition que ce qui est spécifié dans l’appel LimitText, l’utilisateur peut supprimer n’importe quel texte dans le contrôle d’édition. Toutefois, la limite de texte empêchera l’utilisateur de remplacer le texte existant par un nouveau texte, sauf si la suppression de la sélection actuelle entraîne la chute du texte sous la limite de texte.

Cette fonction remplace LimitText dans Win32.

Pour plus d’informations, consultez EM_SETLIMITTEXT dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEditView ::GetEditCtrl.

CEdit ::SetMargins

Appelez cette méthode pour définir les marges gauche et droite de ce contrôle d’édition.

void SetMargins(
    UINT nLeft,
    UINT nRight);

Paramètres

nLeft
Largeur de la nouvelle marge gauche, en pixels.

nRight
Largeur de la nouvelle marge droite, en pixels.

Notes

Remarque

Cette fonction membre est disponible à compter de Windows 95 et Windows NT 4.0.

Pour plus d’informations, consultez EM_SETMARGINS dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEditView ::GetEditCtrl.

CEdit ::SetModify

Appelez cette fonction pour définir ou effacer l’indicateur modifié d’un contrôle d’édition.

void SetModify(BOOL bModified = TRUE);

Paramètres

bModified
La valeur TRUE indique que le texte a été modifié et qu’une valeur false indique qu’il n’est pas modifié. Par défaut, l’indicateur modifié est défini.

Notes

L’indicateur modifié indique si le texte du contrôle d’édition a été modifié ou non. Elle est automatiquement définie chaque fois que l’utilisateur modifie le texte. Sa valeur peut être récupérée avec la fonction membre GetModify .

Pour plus d’informations, consultez EM_SETMODIFY dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::GetModify.

CEdit ::SetPasswordChar

Appelez cette fonction pour définir ou supprimer un caractère de mot de passe affiché dans un contrôle d’édition lorsque l’utilisateur tape du texte.

void SetPasswordChar(TCHAR ch);

Paramètres

Ch
Spécifie le caractère à afficher à la place du caractère tapé par l’utilisateur. Si ch est 0, les caractères réels tapés par l’utilisateur sont affichés.

Notes

Lorsqu’un caractère de mot de passe est défini, ce caractère s’affiche pour chaque caractère que l’utilisateur tape.

Cette fonction membre n’a aucun effet sur un contrôle d’édition à plusieurs lignes.

Lorsque la SetPasswordChar fonction membre est appelée, CEdit redessine tous les caractères visibles à l’aide du caractère spécifié par ch.

Si le contrôle d’édition est créé avec le style ES_PASSWORD , le caractère de mot de passe par défaut est défini sur un astérisque ( *). Ce style est supprimé s’il SetPasswordChar est appelé avec ch défini sur 0.

Pour plus d’informations, consultez EM_SETPASSWORDCHAR dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::SetReadOnly

Appelle cette fonction pour définir l’état en lecture seule d’un contrôle d’édition.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Paramètres

bReadOnly
Spécifie s’il faut définir ou supprimer l’état en lecture seule du contrôle d’édition. La valeur TRUE définit l’état en lecture seule ; la valeur FALSE définit l’état en lecture/écriture.

Valeur de retour

Différent de zéro si l’opération réussit ou 0 si une erreur se produit.

Notes

Le paramètre actuel est disponible en testant l’indicateur ES_READONLY dans la valeur de retour de CWnd ::GetStyle.

Pour plus d’informations, consultez EM_SETREADONLY dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

CEdit ::SetRect

Appelez cette fonction pour définir les dimensions d’un rectangle à l’aide des coordonnées spécifiées.

void SetRect(LPCRECT lpRect);

Paramètres

lpRect
Pointe vers la structure ou CRect l’objet RECT qui spécifie les nouvelles dimensions du rectangle de mise en forme.

Notes

Ce membre est traité uniquement par les contrôles d’édition à plusieurs lignes.

Permet SetRect de définir le rectangle de mise en forme d’un contrôle d’édition à plusieurs lignes. Le rectangle de mise en forme est le rectangle de limitation du texte, qui est indépendant de la taille de la fenêtre de contrôle d’édition. Lorsque le contrôle d’édition est créé pour la première fois, le rectangle de mise en forme est identique à la zone cliente de la fenêtre de contrôle d’édition. À l’aide de la SetRect fonction membre, une application peut rendre le rectangle de mise en forme plus grand ou plus petit que la fenêtre de contrôle d’édition.

Si le contrôle d’édition n’a pas de barre de défilement, le texte est clippé, pas encapsulé, si le rectangle de mise en forme est plus grand que la fenêtre. Si le contrôle d’édition contient une bordure, le rectangle de mise en forme est réduit par la taille de la bordure. Si vous ajustez le rectangle retourné par la GetRect fonction membre, vous devez supprimer la taille de la bordure avant de passer le rectangle à SetRect.

Lorsqu’il SetRect est appelé, le texte du contrôle d’édition est également reformaté et redisplayé.

Pour plus d’informations, consultez EM_SETRECT dans le Kit de développement logiciel (SDK) Windows.

Exemple

// 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

Appelez cette fonction pour définir le rectangle de mise en forme d’un contrôle d’édition à plusieurs lignes.

void SetRectNP(LPCRECT lpRect);

Paramètres

lpRect
Pointe vers une structure ou CRect un RECT objet qui spécifie les nouvelles dimensions du rectangle.

Notes

Le rectangle de mise en forme est le rectangle de limitation du texte, qui est indépendant de la taille de la fenêtre de contrôle d’édition.

SetRectNP est identique à la SetRect fonction membre, sauf que la fenêtre de contrôle d’édition n’est pas redessinée.

Lorsque le contrôle d’édition est créé pour la première fois, le rectangle de mise en forme est identique à la zone cliente de la fenêtre de contrôle d’édition. En appelant la SetRectNP fonction membre, une application peut rendre le rectangle de mise en forme plus grand ou plus petit que la fenêtre de contrôle d’édition.

Si le contrôle d’édition n’a pas de barre de défilement, le texte est clippé, pas encapsulé, si le rectangle de mise en forme est plus grand que la fenêtre.

Ce membre est traité uniquement par les contrôles d’édition à plusieurs lignes.

Pour plus d’informations, consultez EM_SETRECTNP dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::SetRect.

CEdit ::SetSel

Appelez cette fonction pour sélectionner une plage de caractères dans un contrôle d’édition.

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

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

Paramètres

dwSelection
Spécifie la position de départ dans le mot de bas ordre et la position de fin dans le mot de classement élevé. Si le mot de bas ordre est 0 et que le mot de classement élevé est -1, tout le texte du contrôle d’édition est sélectionné. Si le mot de bas ordre est -1, toute sélection actuelle est supprimée.

bNoScroll
Indique si le point doit faire défiler l’affichage. Si la valeur est FALSE, le pointillé est fait défiler vers l’affichage. Si la valeur est TRUE, la carete n’est pas défiler vers la vue.

nStartChar
Spécifie la position de départ. Si nStartChar est 0 et nEndChar est -1, tout le texte du contrôle d’édition est sélectionné. Si nStartChar a la valeur -1, toute sélection actuelle est supprimée.

nEndChar
Spécifie la position de fin.

Notes

Pour plus d’informations, consultez EM_SETSEL dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEdit ::GetSel.

CEdit ::SetTabStops

Appelez cette fonction pour définir les taquets de tabulation dans un contrôle d’édition à plusieurs lignes.

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

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

Paramètres

cxEachStop
Spécifie que les taquets de tabulation doivent être définis à chaque unité de boîte de dialogue cxEachStop .

nTabStops
Spécifie le nombre d’taquets de tabulation contenus dans rgTabStops. Ce nombre doit être supérieur à 1.

rgTabStops
Pointe vers un tableau d’entiers non signés spécifiant les taquets de tabulation dans les unités de boîte de dialogue. Une unité de dialogue est une distance horizontale ou verticale. Une unité de dialogue horizontale est égale à un quart de l’unité de largeur de base de dialogue actuelle, et 1 unité de dialogue verticale est égale à un huitième de l’unité de hauteur de base de dialogue actuelle. Les unités de dialogue sont calculées en fonction de la hauteur et de la largeur de la police système actuelle. La GetDialogBaseUnits fonction Windows retourne les unités de base de boîte de dialogue actuelles en pixels.

Valeur de retour

Différent de zéro si les onglets ont été définis ; sinon 0.

Notes

Lorsque le texte est copié dans un contrôle d’édition à plusieurs lignes, tout caractère de tabulation dans le texte entraîne la génération d’espace jusqu’au taquet de tabulation suivant.

Pour définir les taquets de tabulation sur la taille par défaut de 32 unités de boîte de dialogue, appelez la version sans paramètre de cette fonction membre. Pour définir les taquets de tabulation sur une taille autre que 32, appelez la version avec le paramètre cxEachStop . Pour définir des taquets de tabulation sur un tableau de tailles, utilisez la version avec deux paramètres.

Cette fonction membre est traitée uniquement par les contrôles d’édition à plusieurs lignes.

SetTabStops ne redessine pas automatiquement la fenêtre d’édition. Si vous modifiez les taquets de tabulation pour le texte déjà dans le contrôle d’édition, appelez CWnd ::InvalidateRect pour redessiner la fenêtre d’édition.

Pour plus d’informations, consultez EM_SETTABSTOPS et GetDialogBaseUnits dans le Kit de développement logiciel (SDK) Windows.

Exemple

Consultez l’exemple de CEditView ::SetTabStops.

CEdit ::ShowBalloonTip

Affiche une bulle associée au contrôle d’édition actuel.

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

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

Paramètres

pEditBalloonTip
[in] Pointeur vers une structure EDI To ALLOONTIP qui décrit l’info-bulle.

lpszTitle
[in] Pointeur vers une chaîne Unicode qui contient le titre de l’info-bulle.

lpszText
[in] Pointeur vers une chaîne Unicode qui contient le texte d’info-bulle.

ttiIcon
[in] InT qui spécifie le type d’icône à associer à l’info-bulle. La valeur par défaut est TTI_NONE. Pour plus d’informations, consultez le ttiIcon membre de la structure EDI To ALLOONTIP.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Cette fonction envoie le message EM_SHOWBALLOONTIP , qui est décrit dans le Kit de développement logiciel (SDK) Windows. Pour plus d’informations, consultez la macro Edit_ShowBalloonTip .

Exemple

Le premier exemple de code définit une variable, m_ceditutilisée pour accéder au contrôle d’édition actuel. Cette variable est utilisée dans l'exemple suivant.

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

L’exemple de code suivant affiche une info-bulle pour un contrôle d’édition. La méthode CEdit ::ShowBalloonTip spécifie un texte de titre et de bulle.

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

CEdit ::Annuler

Appelez cette fonction pour annuler la dernière opération de contrôle d’édition.

BOOL Undo();

Valeur de retour

Pour un contrôle d’édition à ligne unique, la valeur de retour est toujours différente de zéro. Pour un contrôle d’édition à plusieurs lignes, la valeur de retour est différente de zéro si l’opération d’annulation réussit ou 0 si l’opération d’annulation échoue.

Notes

Une opération d’annulation peut également être annulée. Par exemple, vous pouvez restaurer le texte supprimé avec le premier appel à Undo. Tant qu’il n’y a pas d’opération de modification intermédiaire, vous pouvez supprimer à nouveau le texte avec un deuxième appel à Undo.

Pour plus d’informations, consultez EM_UNDO dans le Kit de développement logiciel (SDK) Windows.

Exemple

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

Voir aussi

Exemple CALCDRIV MFC
Exemple de CMNCTRL2 MFC
CWnd, classe
Graphique hiérarchique
CWnd, classe
CButton, classe
CComboBox, classe
CListBox, classe
CScrollBar, classe
CStatic, classe
CDialog, classe