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 )
où 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
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_FMTLINES 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 EDITBALLOONTIP 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 EDITBALLOONTIP .
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_cedit
utilisé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