CEdit – třída
Poskytuje funkce ovládacího prvku pro úpravy systému Windows.
Syntaxe
class CEdit : public CWnd
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CEdit::CEdit | CEdit Vytvoří řídicí objekt. |
Veřejné metody
Název | Popis |
---|---|
CEdit::CanUndo | Určuje, zda lze operaci ovládacího prvku úprav vrátit zpět. |
CEdit::CharFromPos | Načte indexy řádků a znaků pro znak nejblíže zadané pozici. |
CEdit::Clear | Odstraní (vymaže) aktuální výběr (pokud existuje) v ovládacím prvku pro úpravy. |
CEdit::Copy | Zkopíruje aktuální výběr (pokud existuje) v ovládacím prvku pro úpravy do schránky ve formátu CF_TEXT. |
CEdit::Create | Vytvoří ovládací prvek pro úpravy Systému Windows a připojí ho k objektu CEdit . |
CEdit::Cut | Odstraní (vyjme) aktuální výběr (pokud existuje) v ovládacím prvku pro úpravy a zkopíruje odstraněný text do schránky ve formátu CF_TEXT. |
CEdit::EmptyUndoBuffer | Obnoví (vymaže) příznak zpět ovládacího prvku pro úpravy. |
CEdit::FmtLines | Nastaví zahrnutí znaků s měkkým koncem řádku do ovládacího prvku pro úpravy s více řádky nebo mimo. |
CEdit::GetCueBanner | Načte text zobrazený jako upozornění nebo tip v ovládacím prvku pro úpravy, pokud je ovládací prvek prázdný a nemá fokus. |
CEdit::GetFirstVisibleLine | Určuje nejvíce viditelný řádek v ovládacím prvku pro úpravy. |
CEdit::GetHandle | Načte popisovač do paměti, která je aktuálně přidělena pro víceřádkovou úpravu ovládacího prvku. |
CEdit::GetHighlight | Získá indexy počáteční a koncové znaky v rozsahu textu, který je zvýrazněn v aktuálním ovládacím prvku pro úpravy. |
CEdit::GetLimitText | Získá maximální množství textu, který CEdit může obsahovat. |
CEdit::GetLine | Načte řádek textu z ovládacího prvku pro úpravy. |
CEdit::GetLineCount | Načte počet řádků v ovládacím prvku pro úpravy více řádků. |
CEdit::GetMargins | Získá levý a pravý okraj pro toto CEdit . |
CEdit::GetModify | Určuje, zda byl změněn obsah ovládacího prvku pro úpravy. |
CEdit::GetPasswordChar | Načte znak hesla zobrazený v ovládacím prvku pro úpravy, když uživatel zadá text. |
CEdit::GetRect | Získá formátovací obdélník ovládacího prvku pro úpravy. |
CEdit::GetSel | Získá první a poslední pozice znaků aktuálního výběru v ovládacím prvku pro úpravy. |
CEdit::HideBalloonTip | Skryje jakýkoli bublinový tip přidružený k aktuálnímu ovládacímu prvku pro úpravy. |
CEdit::LimitText | Omezí délku textu, který může uživatel zadat do ovládacího prvku pro úpravy. |
CEdit::LineFromChar | Načte číslo řádku řádku, který obsahuje zadaný index znaků. |
CEdit::LineIndex | Načte index znaků řádku v ovládacím prvku pro úpravy více řádků. |
CEdit::LineLength | Načte délku řádku v ovládacím prvku pro úpravy. |
CEdit::LineScroll | Posune text ovládacího prvku pro úpravy více řádků. |
CEdit::P aste | Vloží data ze schránky do ovládacího prvku pro úpravy na aktuální pozici kurzoru. Data se vloží pouze v případě, že schránka obsahuje data ve formátu CF_TEXT. |
CEdit::P osFromChar | Načte souřadnice levého horního rohu zadaného indexu znaků. |
CEdit::ReplaceSel | Nahradí aktuální výběr v ovládacím prvku pro úpravy zadaným textem. |
CEdit::SetCueBanner | Nastaví text zobrazený jako upozornění nebo tip v ovládacím prvku pro úpravy, pokud je ovládací prvek prázdný a nemá fokus. |
CEdit::SetHandle | Nastaví popisovač na místní paměť, kterou bude používat víceřádkový ovládací prvek pro úpravy. |
CEdit::SetHighlight | Zvýrazní rozsah textu, který se zobrazí v aktuálním ovládacím prvku pro úpravy. |
CEdit::SetLimitText | Nastaví maximální množství textu, který CEdit může obsahovat. |
CEdit::SetMargins | Nastaví levý a pravý okraj pro tento CEdit . |
CEdit::SetModify | Nastaví nebo vymaže příznak úpravy pro ovládací prvek pro úpravy. |
CEdit::SetPasswordChar | Nastaví nebo odebere znak hesla zobrazený v ovládacím prvku pro úpravy, když uživatel zadá text. |
CEdit::SetReadOnly | Nastaví stav ovládacího prvku pro úpravy jen pro čtení. |
CEdit::SetRect | Nastaví obdélník formátování ovládacího prvku pro úpravy více řádků a aktualizuje ovládací prvek. |
CEdit::SetRectNP | Nastaví obdélník formátování víceřádkového ovládacího prvku pro úpravy bez překreslení ovládacího okna. |
CEdit::SetSel | Vybere rozsah znaků v ovládacím prvku pro úpravy. |
CEdit::SetTabStops | Nastaví zarážky tabulátoru v ovládacím prvku pro úpravy více řádků. |
CEdit::ShowBalloonTip | Zobrazí bublinový tip přidružený k aktuálnímu ovládacímu prvku pro úpravy. |
CEdit::Undo | Vrátí zpět poslední operaci ovládacího prvku pro úpravy. |
Poznámky
Ovládací prvek pro úpravy je obdélníkové podřízené okno, do kterého může uživatel zadat text.
Ovládací prvek pro úpravy můžete vytvořit buď ze šablony dialogového okna, nebo přímo v kódu. V obou případech nejprve zavolejte konstruktor CEdit
, který objekt sestaví CEdit
, a pak zavoláte funkci Create member, která vytvoří ovládací prvek pro úpravy Systému Windows a připojí ho k objektu CEdit
.
Konstrukce může být jednokrokový proces ve třídě odvozené od CEdit
. Napište konstruktor pro odvozenou třídu a volání Create
z konstruktoru.
CEdit
dědí významné funkce z CWnd
. Chcete-li nastavit a načíst text z objektu CEdit
, použijte CWnd
členské funkce SetWindowText a GetWindowText, které nastavily nebo získaly celý obsah ovládacího prvku pro úpravy, i když se jedná o víceřádkový ovládací prvek. Textové řádky ve víceřádkovém ovládacím prvku jsou oddělené sekvencemi znaků \r\n. Pokud je ovládací prvek pro úpravy víceřádkový, získejte a nastavte část textu ovládacího prvku voláním CEdit
členské funkce GetLine, SetSel, GetSel a ReplaceSel.
Pokud chcete zpracovávat zprávy oznámení systému Windows odeslané ovládacím prvku úprav do nadřazeného objektu (obvykle třídy odvozené), CDialog
přidejte položku mapování zpráv a členovou funkci obslužné rutiny zpráv do nadřazené třídy pro každou zprávu.
Každá položka mapy zpráv má následující tvar:
ON_NOTIFICATION( id, memberFxn )
kde id
určuje ID podřízeného okna ovládacího prvku pro úpravy odesílajícího oznámení a memberFxn
je název nadřazené členské funkce, kterou jste napsali pro zpracování oznámení.
Prototyp funkce nadřazeného objektu je následující:
afx_msg void memberFxn ( );
Následuje seznam potenciálních položek mapy zpráv a popis případů, ve kterých by byly odeslány nadřazené:
ON_EN_CHANGE Uživatel provedl akci, která může změnit text v ovládacím prvku pro úpravy. Na rozdíl od oznámení EN_UPDATE se tato zpráva oznámení odešle po aktualizaci zobrazení systémem Windows.
ON_EN_ERRSPACE Ovládací prvek pro úpravy nemůže přidělit dostatek paměti pro splnění konkrétního požadavku.
ON_EN_HSCROLL Uživatel klikne na vodorovný posuvník ovládacího prvku pro úpravy. Před aktualizací obrazovky se zobrazí upozornění nadřazeného okna.
ON_EN_KILLFOCUS Ovládací prvek pro úpravy ztratí vstupní fokus.
ON_EN_MAXTEXT Aktuální vložení překročilo zadaný počet znaků pro ovládací prvek pro úpravy a byl zkrácen. Odešle se také, když ovládací prvek pro úpravy nemá styl ES_AUTOHSCROLL a počet znaků, které se mají vložit, by překročil šířku ovládacího prvku pro úpravy. Odešle se také, když ovládací prvek pro úpravy nemá styl ES_AUTOVSCROLL a celkový počet řádků, které jsou výsledkem vložení textu, by překročil výšku ovládacího prvku pro úpravy.
ON_EN_SETFOCUS Odesláno, když ovládací prvek pro úpravy obdrží vstupní fokus.
ON_EN_UPDATE Ovládací prvek pro úpravy se chystá zobrazit změněný text. Odesláno poté, co ovládací prvek naformátoval text, ale před tím, než zobrazí text, aby se velikost okna v případě potřeby změnila.
ON_EN_VSCROLL Uživatel klikne na svislý posuvník ovládacího prvku pro úpravy. Před aktualizací obrazovky se zobrazí upozornění nadřazeného okna.
Pokud vytvoříte CEdit
objekt v dialogovém okně, CEdit
objekt se po zavření dialogového okna automaticky zničí.
Pokud vytvoříte CEdit
objekt z prostředku dialogového okna pomocí editoru dialogového okna, objekt se automaticky zničí, CEdit
když uživatel dialogové okno zavře.
Pokud v okně vytvoříte CEdit
objekt, budete ho možná muset také zničit. Pokud vytvoříte CEdit
objekt v zásobníku, automaticky se zničí. Pokud vytvoříte CEdit
objekt v haldě new
pomocí funkce, musíte volat delete
objekt, aby ho zničil, když uživatel ukončí ovládací prvek pro úpravy systému Windows. Pokud přidělíte jakoukoli paměť v objektu CEdit
, přepište CEdit
destruktor a odstraňte přidělení.
Chcete-li upravit určité styly v ovládacím prvku pro úpravy (například ES_READONLY), je nutné odeslat do ovládacího prvku určité zprávy místo použití ModifyStyle. Viz Upravit styly ovládacích prvků v sadě Windows SDK.
Další informace o CEdit
ovládacích prvcích naleznete v tématu Ovládací prvky.
Hierarchie dědičnosti
CEdit
Požadavky
Hlavička: afxwin.h
CEdit::CanUndo
Voláním této funkce určíte, jestli lze poslední operaci úpravy vrátit zpět.
BOOL CanUndo() const;
Návratová hodnota
Nenulové, pokud poslední operaci úprav lze vrátit zpět voláním Undo
členské funkce; 0, pokud ji nelze vrátit zpět.
Poznámky
Další informace najdete v tématu EM_CANUNDO v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::Undo.
CEdit::CEdit
CEdit
Vytvoří objekt.
CEdit();
Poznámky
Pomocí příkazu Create můžete vytvořit ovládací prvek pro úpravy systému Windows.
Příklad
// Declare a local CEdit object.
CEdit myEdit;
// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;
CEdit::CharFromPos
Voláním této funkce načtete indexy řádků a znaků nulového znaku znaku nejbližšího zadaného bodu v tomto CEdit
ovládacím prvku.
int CharFromPos(CPoint pt) const;
Parametry
Pt
Souřadnice bodu v klientské oblasti tohoto CEdit
objektu.
Návratová hodnota
Index znaků ve WORDu s nízkým pořadím a index řádku ve wordu ve vysokém pořadí.
Poznámky
Poznámka:
Tato členová funkce je dostupná od windows 95 a systém Windows NT 4.0.
Další informace najdete v tématu EM_CHARFROMPOS v sadě Windows SDK.
Příklad
// 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
Voláním této funkce odstraníte (vymaže) aktuální výběr (pokud existuje) v ovládacím prvku pro úpravy.
void Clear();
Poznámky
Odstranění provedené pomocí Clear
volání členské funkce Undo lze vrátit zpět.
Pokud chcete odstranit aktuální výběr a umístit odstraněný obsah do schránky, zavolejte funkci Vyjmout člena.
Další informace najdete v tématu WM_CLEAR v sadě Windows SDK.
Příklad
// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();
CEdit::Copy
Voláním této funkce převedete aktuální výběr (pokud existuje) v ovládacím prvku pro úpravy do schránky ve formátu CF_TEXT.
void Copy();
Poznámky
Další informace najdete v tématu WM_COPY v sadě Windows SDK.
Příklad
// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();
CEdit::Create
Vytvoří ovládací prvek pro úpravy Systému Windows a připojí ho k objektu CEdit
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Určuje styl ovládacího prvku pro úpravy. U ovládacího prvku použijte libovolnou kombinaci stylů úprav.
Rect
Určuje velikost a umístění ovládacího prvku pro úpravy. Může to být CRect
objekt nebo RECT
struktura.
pParentWnd
Určuje nadřazené okno ovládacího prvku pro úpravy (obvykle ).CDialog
Nesmí mít hodnotu NULL.
Nid
Určuje ID ovládacího prvku pro úpravy.
Návratová hodnota
Nenulové, pokud je inicializace úspěšná; jinak 0.
Poznámky
Objekt vytvoříte CEdit
ve dvou krocích. Nejprve zavolejte CEdit
konstruktor a potom volání Create
, který vytvoří ovládací prvek pro úpravy Systému Windows a připojí ho k objektu CEdit
.
Při Create
spuštění systém Windows odešle do ovládacího prvku pro úpravy zprávy WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE a WM_GETMINMAXINFO .
Tyto zprávy jsou zpracovávány ve výchozím nastavení onNcCreate, OnNcCalcSize, OnCreate a OnGetMinMaxInfo členské funkce v CWnd
základní třídě. Chcete-li rozšířit výchozí zpracování zpráv, odvodit třídu z CEdit
, přidat mapu zprávy do nové třídy a přepsat výše uvedené členské funkce obslužné rutiny zprávy. Přepsat OnCreate
, například provést potřebné inicializace pro novou třídu.
U ovládacího prvku pro úpravy použijte následující styly oken.
WS_CHILD Always
WS_VISIBLE obvykle
zřídka WS_DISABLED
WS_GROUP Seskupit ovládací prvky
WS_TABSTOP Zahrnout ovládací prvek pro úpravy v pořadí ovládacích prvků tabbing
Příklad
// 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
Voláním této funkce odstraníte (vyjmete) aktuální výběr (pokud existuje) v ovládacím prvku pro úpravy a zkopírujete odstraněný text do schránky ve formátu CF_TEXT.
void Cut();
Poznámky
Odstranění provedené pomocí Cut
volání členské funkce Undo lze vrátit zpět.
Pokud chcete odstranit aktuální výběr bez umístění odstraněného textu do schránky, zavolejte funkci Vymazat člena.
Další informace najdete v tématu WM_CUT v sadě Windows SDK.
Příklad
// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();
CEdit::EmptyUndoBuffer
Voláním této funkce obnovíte (vymažete) příznak zpět ovládacího prvku pro úpravy.
void EmptyUndoBuffer();
Poznámky
Ovládací prvek pro úpravy teď nebude moct vrátit zpět poslední operaci. Příznak zpět se nastaví vždy, když je možné vrátit zpět operaci v ovládacím prvku pro úpravy.
Příznak zpět se automaticky vymaže při každém zavolání členské funkce SetWindowText nebo SetHandleCWnd
.
Další informace najdete v tématu EM_EMPTYUNDOBUFFER v sadě Windows SDK.
Příklad
// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
m_myEdit.EmptyUndoBuffer();
ASSERT(!m_myEdit.CanUndo());
}
CEdit::FmtLines
Voláním této funkce nastavíte zahrnutí znaků s měkkým koncem řádku do ovládacího prvku pro úpravy s více řádky.
BOOL FmtLines(BOOL bAddEOL);
Parametry
bAddEOL
Určuje, zda mají být vloženy měkké znaky zalomení řádku. Hodnota PRAVDA vloží znaky; hodnota NEPRAVDA je odebere.
Návratová hodnota
Nenulové, pokud dojde k nějakému formátování; jinak 0.
Poznámky
Konec měkké čáry se skládá ze dvou návratů na začátek řádku a čáry vložené na konec řádku, který je přerušen kvůli zalamování textu. Pevný konec řádku se skládá z jednoho návratu na začátek řádku a kanálu řádku. Čáry, které končí pevným koncem čáry, nejsou ovlivněny FmtLines
.
Systém Windows odpoví pouze v případě CEdit
, že je objekt víceřádkovým ovládacím prvku pro úpravy.
FmtLines
má vliv pouze na vyrovnávací paměť vrácenou GetHandle a text vrácený WM_GETTEXT. Nemá žádný vliv na zobrazení textu v ovládacím prvku pro úpravy.
Další informace najdete v tématu EM_FMTLINES v sadě Windows SDK.
Příklad
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
Načte text zobrazený jako upozornění nebo tip v ovládacím prvku pro úpravy, pokud je ovládací prvek prázdný.
BOOL GetCueBanner(
LPWSTR lpszText,
int cchText) const;
CString GetCueBanner() const;
Parametry
lpszText
[ven] Ukazatel na řetězec, který obsahuje text upozornění.
cchText
[v] Počet znaků, které lze přijímat. Toto číslo zahrnuje ukončující znak NULL.
Návratová hodnota
Pro první přetížení, TRUE pokud je metoda úspěšná; jinak NEPRAVDA.
Pro druhé přetížení CString, který obsahuje cue text, pokud metoda je úspěšná; jinak prázdný řetězec ("").
Poznámky
Tato metoda odešle EM_GETCUEBANNER zprávu, která je popsaná v sadě Windows SDK. Další informace najdete v Edit_GetCueBannerText makrech.
CEdit::GetFirstVisibleLine
Voláním této funkce určíte nejvíce viditelný řádek v ovládacím prvku pro úpravy.
int GetFirstVisibleLine() const;
Návratová hodnota
Index založený na nule nejvyšší viditelné čáry. U ovládacích prvků pro úpravy s jedním řádkem je návratová hodnota 0.
Poznámky
Další informace najdete v tématu EM_GETFIRSTVISIBLELINE v sadě Windows SDK.
Příklad
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
Voláním této funkce načtěte popisovač do paměti, která je aktuálně přidělena pro víceřádkový ovládací prvek pro úpravy.
HLOCAL GetHandle() const;
Návratová hodnota
Popisovač místní paměti, který identifikuje vyrovnávací paměť obsahující obsah ovládacího prvku pro úpravy. Pokud dojde k chybě, například odeslání zprávy do ovládacího prvku pro úpravy s jedním řádkem, je vrácená hodnota 0.
Poznámky
Popisovač je popisovač místní paměti a může ho používat kterýkoli z funkcí paměti místního systému Windows, které jako parametr přebírají popisovač místní paměti.
GetHandle
zpracovává se pouze ovládacími prvky pro úpravy více řádků.
Volání GetHandle
ovládacího prvku pro víceřádkovou úpravu v dialogovém okně pouze v případě, že bylo dialogové okno vytvořeno se sadou příznaků stylu DS_LOCALEDIT. Pokud není nastaven styl DS_LOCALEDIT, stále získáte nenulovou návratovou hodnotu, ale vrácenou hodnotu nebudete moct použít.
Poznámka:
GetHandle
nebude fungovat s Windows 95/98. Pokud zavoláte GetHandle
v systému Windows 95/98, vrátí hodnotu NULL. GetHandle
bude fungovat podle dokumentu v části systém Windows NT verze 3.51 a novější.
Další informace najdete v tématu EM_GETHANDLE v sadě Windows SDK.
Příklad
HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);
// Dump the text of the edit control.
AFXDUMP(lpszText);
::LocalUnlock(h);
CEdit::GetHighlight
Získá indexy prvních a posledních znaků v rozsahu textu, který je zvýrazněn v aktuálním ovládacím prvku pro úpravy.
BOOL GetHighlight(
int* pichStart,
int* pichEnd) const;
Parametry
pichStart
[ven] Index založený na nule prvního znaku v rozsahu textu, který je zvýrazněn.
pichEnd
[ven] Index založený na nule posledního znaku v oblasti textu, který je zvýrazněn.
Návratová hodnota
TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.
Poznámky
Tato metoda odešle EM_GETHILITE zprávu, která je popsaná v sadě Windows SDK. GetHighlight
V SetHighlight
současné době jsou povolené pouze pro sestavení UNICODE.
CEdit::GetLimitText
Voláním této členské funkce získáte omezení textu pro tento CEdit
objekt.
UINT GetLimitText() const;
Návratová hodnota
Aktuální omezení textu v TCHARs pro tento CEdit
objekt.
Poznámky
Limit textu je maximální množství textu v TCHARs, které může ovládací prvek pro úpravy přijmout.
Poznámka:
Tato členová funkce je dostupná od windows 95 a systém Windows NT 4.0.
Další informace najdete v tématu EM_GETLIMITTEXT v sadě Windows SDK.
Příklad
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
Voláním této funkce načtete řádek textu z ovládacího prvku pro úpravy a umístíte ho do lpszBufferu.
int GetLine(
int nIndex,
LPTSTR lpszBuffer) const;
int GetLine(
int nIndex,
LPTSTR lpszBuffer,
int nMaxLength) const;
Parametry
nIndex
Určuje číslo řádku, které se má načíst z ovládacího prvku pro úpravy více řádků. Čísla řádků jsou založená na nule; hodnota 0 určuje první řádek. Tento parametr je ignorován ovládacím prvku pro úpravy s jedním řádkem.
lpszBuffer
Odkazuje na vyrovnávací paměť, která přijímá kopii řádku. První slovo vyrovnávací paměti musí určovat maximální počet TCHARs, které lze zkopírovat do vyrovnávací paměti.
nMaxLength
Určuje maximální počet znaků TCHAR, které lze zkopírovat do vyrovnávací paměti. GetLine
umístí tuto hodnotu do prvního slova lpszBuffer před voláním systému Windows.
Návratová hodnota
Počet znaků, které se skutečně zkopírovaly. Vrácená hodnota je 0, pokud je číslo řádku určené parametrem nIndex větší než počet řádků v ovládacím prvku pro úpravy.
Poznámky
Zkopírovaný řádek neobsahuje znak ukončení s hodnotou null.
Další informace najdete v tématu EM_GETLINE v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::GetLineCount.
CEdit::GetLineCount
Voláním této funkce načtete počet řádků v ovládacím prvku pro úpravy více řádků.
int GetLineCount() const;
Návratová hodnota
Celé číslo obsahující počet řádků v ovládacím prvku pro úpravy více řádků. Pokud nebyl do ovládacího prvku pro úpravy zadán žádný text, vrátí se hodnota 1.
Poznámky
GetLineCount
zpracovává se pouze ovládacími prvky pro úpravy více řádků.
Další informace najdete v tématu EM_GETLINECOUNT v sadě Windows SDK.
Příklad
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
Voláním této členské funkce načtete levý a pravý okraj tohoto ovládacího prvku pro úpravy.
DWORD GetMargins() const;
Návratová hodnota
Šířka levého okraje ve WORDu s nízkým pořadím a šířka pravého okraje ve wordu ve vysokém pořadí.
Poznámky
Okraje se měří v pixelech.
Poznámka:
Tato členová funkce je dostupná od windows 95 a systém Windows NT 4.0.
Další informace najdete v tématu EM_GETMARGINS v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEditView::GetEditCtrl.
CEdit::GetModify
Voláním této funkce určíte, zda byl změněn obsah ovládacího prvku pro úpravy.
BOOL GetModify() const;
Návratová hodnota
Nenulové, pokud byl změněn obsah ovládacího prvku pro úpravy; 0, pokud zůstali beze změny.
Poznámky
Systém Windows udržuje interní příznak označující, jestli byl změněn obsah ovládacího prvku pro úpravy. Tento příznak se vymaže při prvním vytvoření ovládacího prvku pro úpravy a může být také vymazán voláním členské funkce SetModify .
Další informace najdete v tématu EM_GETMODIFY v sadě Windows SDK.
Příklad
// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
m_myEdit.SetModify(FALSE);
CEdit::GetPasswordChar
Voláním této funkce načtete znak hesla, který se zobrazí v ovládacím prvku pro úpravy, když uživatel zadá text.
TCHAR GetPasswordChar() const;
Návratová hodnota
Určuje znak, který se má zobrazit místo znaku, který uživatel zadal. Návratová hodnota je NULL, pokud neexistuje žádný znak hesla.
Poznámky
Pokud vytvoříte ovládací prvek pro úpravy se stylem ES_PASSWORD, knihovna DLL, která podporuje ovládací prvek, určuje výchozí znak hesla. Manifest nebo InitCommonControlsEx metoda určuje, která knihovna DLL podporuje ovládací prvek pro úpravy. Pokud user32.dll podporuje ovládací prvek pro úpravy, výchozí znak hesla je ASTERISK (*, U+002A). Pokud comctl32.dll verze 6 podporuje ovládací prvek pro úpravy, výchozí znak je BLACK CIRCLE ('●', U+25CF). Další informace o tom, která knihovna DLL a verze podporují běžné ovládací prvky, naleznete v tématu Shell a Common Controls Versions.
Tato metoda odešle EM_GETPASSWORDCHAR zprávu, která je popsaná v sadě Windows SDK.
Příklad
// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');
CEdit::GetRect
Voláním této funkce získáte obdélník formátování ovládacího prvku pro úpravy.
void GetRect(LPRECT lpRect) const;
Parametry
lpRect
Odkazuje na RECT
strukturu, která přijímá obdélník formátování.
Poznámky
Obdélník formátování je omezující obdélník textu, který je nezávislý na velikosti okna ovládacího prvku pro úpravy.
Formátovací obdélník ovládacího prvku pro víceřádkovou úpravu lze upravit pomocí členské funkce SetRect a SetRectNP .
Další informace najdete v tématu EM_GETRECT v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::LimitText.
CEdit::GetSel
Voláním této funkce získáte počáteční a koncovou pozici znaků aktuálního výběru (pokud existuje) v ovládacím prvku pro úpravy pomocí návratové hodnoty nebo parametrů.
DWORD GetSel() const;
void GetSel(
int& nStartChar,
int& nEndChar) const;
Parametry
nStartChar
Odkaz na celé číslo, které obdrží pozici prvního znaku v aktuálním výběru.
nEndChar
Odkaz na celé číslo, které obdrží pozici prvního nevybraného znaku za koncem aktuálního výběru.
Návratová hodnota
Verze, která vrátí hodnotu DWORD, vrátí hodnotu, která obsahuje počáteční pozici ve slově s nízkým pořadím a pozici prvního nevybraného znaku za koncem výběru ve slově s vysokým pořadím.
Poznámky
Další informace najdete v tématu EM_GETSEL v sadě Windows SDK.
Příklad
// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);
CEdit::HideBalloonTip
Skryje jakýkoli bublinový tip přidružený k aktuálnímu ovládacímu prvku pro úpravy.
BOOL HideBalloonTip();
Návratová hodnota
TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.
Poznámky
Tato funkce odešle EM_HIDEBALLOONTIP zprávu, která je popsaná v sadě Windows SDK.
CEdit::LimitText
Voláním této funkce omezíte délku textu, který uživatel může zadat do ovládacího prvku pro úpravy.
void LimitText(int nChars = 0);
Parametry
nChars
Určuje délku (v TCHARs) textu, který může uživatel zadat. Pokud je tento parametr 0, je délka textu nastavená na UINT_MAX bajtů. Toto je výchozí chování.
Poznámky
Změna limitu textu omezuje jenom text, který může uživatel zadat. Nemá žádný vliv na žádný text již v ovládacím prvku pro úpravy, ani nemá vliv na délku textu zkopírovaného do ovládacího prvku pro úpravy funkcí SetWindowText člen funkce v CWnd
. Pokud aplikace používá SetWindowText
funkci k umístění více textu do ovládacího prvku pro úpravy, než je uvedeno v volání LimitText
, může uživatel odstranit libovolný text v ovládacím prvku pro úpravy. Omezení textu ale zabrání uživateli nahradit stávající text novým textem, pokud odstranění aktuálního výběru způsobí, že text klesne pod limit textu.
Poznámka:
V systému Win32 (systém Windows NT a Windows 95/98) nahradí funkce SetLimitText.
Další informace najdete v tématu EM_LIMITTEXT v sadě Windows SDK.
Příklad
// 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
Voláním této funkce načtete číslo řádku, který obsahuje zadaný znakový index.
int LineFromChar(int nIndex = -1) const;
Parametry
nIndex
Obsahuje hodnotu indexu založenou na nule pro požadovaný znak v textu ovládacího prvku pro úpravy nebo obsahuje -1. Pokud nIndex je -1, určuje aktuální řádek, tj. řádek, který obsahuje stříšku.
Návratová hodnota
Číslo řádku založeného na nule řádku obsahujícího index znaků určený parametrem nIndex. Pokud je nIndex -1, vrátí se číslo řádku, který obsahuje první znak výběru. Pokud neexistuje žádný výběr, vrátí se číslo aktuálního řádku.
Poznámky
Index znaků je počet znaků od začátku ovládacího prvku pro úpravy.
Tuto členovou funkci používají jenom ovládací prvky pro úpravy více řádků.
Další informace najdete v tématu EM_LINEFROMCHAR v sadě Windows SDK.
Příklad
// 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
Voláním této funkce načtete index znaků řádku v ovládacím prvku pro úpravy více řádků.
int LineIndex(int nLine = -1) const;
Parametry
nLine
Obsahuje hodnotu indexu požadovaného řádku v textu ovládacího prvku pro úpravy nebo obsahuje hodnotu -1. Pokud je nLine -1, určuje aktuální čáru, tj. čáru, která obsahuje stříšku.
Návratová hodnota
Znakový index řádku zadaného v řádku nLine nebo -1, pokud je zadané číslo řádku větší než počet řádků v ovládacím prvku pro úpravy.
Poznámky
Index znaků je počet znaků od začátku ovládacího prvku pro úpravy na zadaný řádek.
Tato členová funkce je zpracována pouze víceřádkovými ovládacími prvky pro úpravy.
Další informace najdete v tématu EM_LINEINDEX v sadě Windows SDK.
Příklad
// 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
Načte délku řádku v ovládacím prvku pro úpravy.
int LineLength(int nLine = -1) const;
Parametry
nLine
Index znaku založený na nule na řádku, jehož délka se má načíst. Výchozí hodnota je -1.
Návratová hodnota
U ovládacích prvků pro úpravy s jedním řádkem je návratová hodnota délka textu v ovládacím prvku pro úpravy v souboru TCHARS.
U ovládacích prvků pro víceřádkové úpravy je návratová hodnota délka řádku určeného parametrem nLine v TCHARs. U textu ANSI je délka počtu bajtů na řádku; pro text Unicode je délka počtu znaků na řádku. Délka neobsahuje znak návratu na začátek řádku.
Pokud je parametr nLine větší než počet znaků v ovládacím prvku, návratová hodnota je nula.
Pokud je parametr nLine -1, návratová hodnota je počet nevybraných znaků v řádcích, které obsahují vybrané znaky. Pokud je například výběr rozšířen od čtvrtého znaku jednoho řádku přes osmý znak od konce dalšího řádku, je vrácená hodnota 10. To znamená, že tři znaky na prvním řádku a sedm na dalším řádku.
Další informace o typu TCHAR naleznete v řádku TCHAR v tabulce v datových typech Systému Windows.
Poznámky
Tato metoda je podporována zprávou EM_LINELENGTH , která je popsaná v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::LineIndex.
CEdit::LineScroll
Voláním této funkce se posunete text ovládacího prvku pro úpravy více řádků.
void LineScroll(
int nLines,
int nChars = 0);
Parametry
nLines
Určuje počet řádků, které se mají posunout svisle.
nChars
Určuje počet pozic znaků, které se mají vodorovně posunout. Tato hodnota se ignoruje, pokud má ovládací prvek pro úpravy styl ES_RIGHT nebo ES_CENTER.
Poznámky
Tato členová funkce je zpracována pouze víceřádkovými ovládacími prvky pro úpravy.
Ovládací prvek pro úpravy se nepřesouvají svisle za poslední řádek textu v ovládacím prvku pro úpravy. Pokud aktuální řádek plus počet řádků zadaných řádky překročí celkový počet řádků v ovládacím prvku pro úpravy, upraví se hodnota tak, aby se poslední řádek ovládacího prvku pro úpravy posunoval na začátek okna pro úpravy.
LineScroll
lze použít k posouvání vodorovně za poslední znak libovolného řádku.
Další informace najdete v tématu EM_LINESCROLL v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::GetFirstVisibleLine.
CEdit::P aste
Voláním této funkce vložíte data ze schránky do CEdit
místa vložení.
void Paste();
Poznámky
Data se vloží pouze v případě, že schránka obsahuje data ve formátu CF_TEXT.
Další informace najdete v tématu WM_PASTE v sadě Windows SDK.
Příklad
// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();
CEdit::P osFromChar
Voláním této funkce získáte pozici (levý horní roh) daného znaku v rámci tohoto CEdit
objektu.
CPoint PosFromChar(UINT nChar) const;
Parametry
nChar
Index založený na nule zadaného znaku.
Návratová hodnota
Souřadnice levého horního rohu znaku určeného parametrem nChar.
Poznámky
Znak je určen zadáním hodnoty indexu založeného na nule. Pokud je nChar větší než index posledního znaku v tomto CEdit
objektu, návratová hodnota určuje souřadnice pozice znaku těsně za poslední znak v tomto CEdit
objektu.
Poznámka:
Tato členová funkce je dostupná od windows 95 a systém Windows NT 4.0.
Další informace najdete v tématu EM_POSFROMCHAR v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::LineFromChar.
CEdit::ReplaceSel
Voláním této funkce nahradíte aktuální výběr v ovládacím prvku pro úpravy textem určeným lpszNewText.
void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);
Parametry
lpszNewText
Odkazuje na řetězec ukončený hodnotou null obsahující náhradní text.
bCanUndo
Chcete-li určit, že tuto funkci lze vrátit zpět, nastavte hodnotu tohoto parametru na HODNOTU TRUE . Výchozí hodnota je FALSE.
Poznámky
Nahradí jenom část textu v ovládacím prvku pro úpravy. Chcete-li nahradit veškerý text, použijte funkci člena CWnd::SetWindowText .
Pokud neexistuje žádný aktuální výběr, vloží se náhradní text do aktuálního umístění kurzoru.
Další informace najdete v tématu EM_REPLACESEL v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::LineIndex.
CEdit::SetCueBanner
Nastaví text zobrazený jako upozornění nebo tip v ovládacím prvku pro úpravy, pokud je ovládací prvek prázdný.
BOOL SetCueBanner(LPCWSTR lpszText);
BOOL SetCueBanner(
LPCWSTR lpszText,
BOOL fDrawWhenFocused = FALSE);
Parametry
lpszText
[v] Ukazatel na řetězec, který obsahuje vodítko pro zobrazení v ovládacím prvku pro úpravy.
fDrawWhenFocused
[v] Pokud JE NEPRAVDA, banner upozornění se nevykreslí, když uživatel klikne v ovládacím prvku pro úpravy a zobrazí fokus.
Pokud je pravda, informační nápis se nakreslí i v případě, že má ovládací prvek fokus. Informační zpráva zmizí, když uživatel začne psát do ovládacího prvku.
Výchozí hodnota je FALSE.
Návratová hodnota
TRUE, pokud je metoda úspěšná; jinak NEPRAVDA.
Poznámky
Tato metoda odešle EM_SETCUEBANNER zprávu, která je popsaná v sadě Windows SDK. Další informace najdete v Edit_SetCueBannerTextFocused makrech.
Příklad
Následující příklad ukazuje CEdit::SetCueBanner metoda.
m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);
CEdit::SetHandle
Voláním této funkce nastavíte popisovač na místní paměť, kterou bude používat víceřádkový ovládací prvek pro úpravy.
void SetHandle(HLOCAL hBuffer);
Parametry
hBuffer
Obsahuje popisovač místní paměti. Tento popisovač musel být vytvořen předchozím voláním funkce LocalAlloc Windows pomocí příznaku LMEM_MOVEABLE. Předpokládá se, že paměť obsahuje řetězec ukončený hodnotou null. Pokud tomu tak není, měl by být první bajt přidělené paměti nastaven na hodnotu 0.
Poznámky
Ovládací prvek pro úpravy pak použije tuto vyrovnávací paměť k uložení aktuálně zobrazeného textu místo přidělení vlastní vyrovnávací paměti.
Tato členová funkce je zpracována pouze víceřádkovými ovládacími prvky pro úpravy.
Než aplikace nastaví nový popisovač paměti, měl by pomocí členské funkce GetHandle získat popisovač do aktuální vyrovnávací paměti a uvolnit tuto paměť pomocí LocalFree
funkce Windows.
SetHandle
vymaže vyrovnávací paměť zpět ( členské funkce CanUndo pak vrátí hodnotu 0) a příznak vnitřní úpravy ( členová funkce GetModify pak vrátí hodnotu 0). Okno pro úpravy je překresleno.
Tuto členovou funkci můžete použít v ovládacím prvku pro úpravy více řádků v dialogovém okně pouze v případě, že jste dialogové okno vytvořili se sadou příznaků stylu DS_LOCALEDIT.
Poznámka:
GetHandle
nebude fungovat s Windows 95/98. Pokud zavoláte GetHandle
v systému Windows 95/98, vrátí hodnotu NULL. GetHandle
bude fungovat podle dokumentu v části systém Windows NT verze 3.51 a novější.
Další informace naleznete v tématu EM_SETHANDLE, LocalAlloc a LocalFree v sadě Windows SDK.
Příklad
// 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
Zvýrazní rozsah textu, který se zobrazí v aktuálním ovládacím prvku pro úpravy.
void SetHighlight(
int ichStart,
int ichEnd);
Parametry
ichStart
[v] Index založený na nule prvního znaku v rozsahu textu, který se má zvýraznit.
ichEnd
[v] Index založený na nule posledního znaku v rozsahu textu, který se má zvýraznit.
Poznámky
Tato metoda odešle EM_SETHILITE zprávu, která je popsaná v sadě Windows SDK. Tato metoda odešle EM_SETHILITE zprávu, která je popsaná v sadě Windows SDK. Obě SetHighlight
a GetHighlight
jsou povolené jenom pro sestavení UNICODE.
CEdit::SetLimitText
Voláním této členské funkce nastavíte omezení textu pro tento CEdit
objekt.
void SetLimitText(UINT nMax);
Parametry
nMax
Nový limit textu ve znaznachu.
Poznámky
Omezení textu je maximální množství textu ve znaznachu, které může ovládací prvek pro úpravy přijmout.
Změna limitu textu omezuje jenom text, který může uživatel zadat. Nemá žádný vliv na žádný text již v ovládacím prvku pro úpravy, ani nemá vliv na délku textu zkopírovaného do ovládacího prvku pro úpravy funkcí SetWindowText člen funkce v CWnd
. Pokud aplikace používá SetWindowText
funkci k umístění více textu do ovládacího prvku pro úpravy, než je uvedeno v volání LimitText
, může uživatel odstranit libovolný text v ovládacím prvku pro úpravy. Omezení textu ale zabrání uživateli nahradit stávající text novým textem, pokud odstranění aktuálního výběru způsobí, že text klesne pod limit textu.
Tato funkce nahrazuje LimitText v systému Win32.
Další informace najdete v tématu EM_SETLIMITTEXT v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEditView::GetEditCtrl.
CEdit::SetMargins
Voláním této metody nastavíte levý a pravý okraj tohoto ovládacího prvku pro úpravy.
void SetMargins(
UINT nLeft,
UINT nRight);
Parametry
nLeft
Šířka nového levého okraje v pixelech.
nRight
Šířka nového pravého okraje v pixelech.
Poznámky
Poznámka:
Tato členová funkce je dostupná od windows 95 a systém Windows NT 4.0.
Další informace najdete v tématu EM_SETMARGINS v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEditView::GetEditCtrl.
CEdit::SetModify
Voláním této funkce nastavíte nebo vymažete upravený příznak pro ovládací prvek pro úpravy.
void SetModify(BOOL bModified = TRUE);
Parametry
bModified
Hodnota PRAVDA označuje, že text byl změněn, a hodnota NEPRAVDA označuje, že je nezměněná. Ve výchozím nastavení je upravený příznak nastavený.
Poznámky
Upravený příznak označuje, zda byl text v ovládacím prvku pro úpravy změněn. Automaticky se nastaví pokaždé, když uživatel změní text. Jeho hodnota může být načtena pomocí GetModify členské funkce.
Další informace najdete v tématu EM_SETMODIFY v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::GetModify.
CEdit::SetPasswordChar
Voláním této funkce nastavíte nebo odeberete znak hesla zobrazený v ovládacím prvku pro úpravy, když uživatel zadá text.
void SetPasswordChar(TCHAR ch);
Parametry
ch
Určuje znak, který má být zobrazen místo znaku zadaného uživatelem. Pokud je hodnota ch 0, zobrazí se skutečné znaky zadané uživatelem.
Poznámky
Pokud je nastaven znak hesla, zobrazí se tento znak pro každý znak, který uživatel zadá.
Tato členová funkce nemá žádný vliv na ovládací prvek pro úpravy více řádků.
SetPasswordChar
Při zavolání CEdit
členské funkce překreslí všechny viditelné znaky pomocí znaku určeného ch.
Pokud je ovládací prvek pro úpravy vytvořen pomocí stylu ES_PASSWORD , výchozí znak hesla je nastaven na hvězdičku ( *). Tento styl se odebere, pokud SetPasswordChar
je volán s ch nastaveným na 0.
Další informace najdete v tématu EM_SETPASSWORDCHAR v sadě Windows SDK.
Příklad
// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));
CEdit::SetReadOnly
Zavolá tuto funkci, která nastaví stav ovládacího prvku pro úpravy jen pro čtení.
BOOL SetReadOnly(BOOL bReadOnly = TRUE);
Parametry
bReadOnly
Určuje, jestli se má nastavit nebo odebrat stav úprav ovládacího prvku jen pro čtení. Hodnota TRUE nastaví stav jen pro čtení; hodnota NEPRAVDA nastaví stav na čtení/zápis.
Návratová hodnota
Nenulové, pokud je operace úspěšná, nebo 0, pokud dojde k chybě.
Poznámky
Aktuální nastavení najdete otestováním příznaku ES_READONLY v návratové hodnotě CWnd::GetStyle.
Další informace najdete v tématu EM_SETREADONLY v sadě Windows SDK.
Příklad
// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);
CEdit::SetRect
Voláním této funkce nastavíte rozměry obdélníku pomocí zadaných souřadnic.
void SetRect(LPCRECT lpRect);
Parametry
lpRect
Odkazuje na RECT
strukturu nebo CRect
objekt, který určuje nové rozměry obdélníku formátování.
Poznámky
Tento člen je zpracován pouze ovládacími prvky pro úpravy více řádků.
Slouží SetRect
k nastavení obdélníku formátování ovládacího prvku pro úpravy více řádků. Obdélník formátování je omezující obdélník textu, který je nezávislý na velikosti okna ovládacího prvku pro úpravy. Při prvním vytvoření ovládacího prvku pro úpravy je obdélník formátování stejný jako v klientské oblasti okna pro úpravy. SetRect
Pomocí členské funkce může aplikace zvětšit nebo zmenšit obdélník formátování než okno ovládacího prvku pro úpravy.
Pokud ovládací prvek pro úpravy nemá posuvník, text se ořízne, nezalomí, pokud je obdélník formátování větší než okno. Pokud ovládací prvek pro úpravy obsahuje ohraničení, zmenší se obdélník formátování o velikost ohraničení. Pokud upravíte obdélník vrácený GetRect
členskou funkcí, musíte před předáním obdélníku SetRect
odebrat velikost ohraničení .
Při SetRect
zavolání se text ovládacího prvku pro úpravy přeformátuje a znovu zobrazí.
Další informace najdete v tématu EM_SETRECT v sadě Windows SDK.
Příklad
// 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
Voláním této funkce nastavíte obdélník formátování ovládacího prvku pro úpravy s více řádky.
void SetRectNP(LPCRECT lpRect);
Parametry
lpRect
Odkazuje na RECT
strukturu nebo CRect
objekt, který určuje nové rozměry obdélníku.
Poznámky
Obdélník formátování je omezující obdélník textu, který je nezávislý na velikosti okna ovládacího prvku pro úpravy.
SetRectNP
je shodná SetRect
s členovou funkcí s tím rozdílem, že okno pro úpravy není překresleno.
Při prvním vytvoření ovládacího prvku pro úpravy je obdélník formátování stejný jako v klientské oblasti okna pro úpravy. Voláním SetRectNP
členské funkce může aplikace zvětšit nebo zmenšit obdélník formátování než okno ovládacího prvku pro úpravy.
Pokud ovládací prvek pro úpravy nemá posuvník, text se ořízne, nezalomí, pokud je obdélník formátování větší než okno.
Tento člen je zpracován pouze ovládacími prvky pro úpravy více řádků.
Další informace najdete v tématu EM_SETRECTNP v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::SetRect.
CEdit::SetSel
Voláním této funkce vyberete rozsah znaků v ovládacím prvku pro úpravy.
void SetSel(
DWORD dwSelection,
BOOL bNoScroll = FALSE);
void SetSel(
int nStartChar,
int nEndChar,
BOOL bNoScroll = FALSE);
Parametry
dwSelection
Určuje počáteční pozici ve slově s nízkým pořadím a koncovou pozici ve slově s vysokým pořadím. Pokud je slovo s nízkým pořadím 0 a slovo ve vysokém pořadí je -1, je vybraný veškerý text v ovládacím prvku pro úpravy. Pokud je slovo nízkého pořadí -1, odebere se jakýkoli aktuální výběr.
bNoScroll
Určuje, jestli se má stříška posunout do zobrazení. Pokud je hodnota NEPRAVDA, posune se stříška do zobrazení. Pokud je pravda, stříšku se nepřesouvejte do zobrazení.
nStartChar
Určuje počáteční pozici. Pokud je nStartChar 0 a nEndChar je -1, je vybraný veškerý text v ovládacím prvku pro úpravy. Pokud nStartChar je -1, odebere se jakýkoli aktuální výběr.
nEndChar
Určuje koncovou pozici.
Poznámky
Další informace najdete v tématu EM_SETSEL v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEdit::GetSel.
CEdit::SetTabStops
Voláním této funkce nastavíte zarážky tabulátoru v ovládacím prvku pro úpravy více řádků.
void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops);
Parametry
cxEachStop
Určuje, že se zarážky tabulátoru nastaví na každé jednotce dialogového okna cxEachStop .
nTabStops
Určuje počet zarážek tabulátoru obsažených v rgTabStops. Toto číslo musí být větší než 1.
rgTabStops
Odkazuje na pole bez znaménka určující zarážky tabulátoru v jednotkách dialogového okna. Jednotka dialogového okna je vodorovná nebo svislá vzdálenost. Jedna vodorovná jednotka dialogového okna se rovná jedné čtvrté jednotce základní šířky aktuálního dialogového okna a 1 svislá jednotka dialogového okna se rovná jedné osmé jednotce základní výšky aktuálního dialogového okna. Základní jednotky dialogového okna se počítají na základě výšky a šířky aktuálního systémového písma. Funkce GetDialogBaseUnits
Windows vrátí aktuální základní jednotky dialogového okna v pixelech.
Návratová hodnota
Nenulové, pokud byly karty nastaveny; jinak 0.
Poznámky
Když se text zkopíruje do ovládacího prvku pro úpravy s více řádky, jakýkoli znak tabulátoru v textu způsobí, že se vygeneruje mezera až do další zarážky tabulátoru.
Chcete-li nastavit zarážky tabulátoru na výchozí velikost 32 jednotek dialogového okna, zavolejte bez parametrů této členské funkce. Pokud chcete nastavit zarážky tabulátoru na jinou velikost než 32, zavolejte verzi s parametrem cxEachStop . Pokud chcete nastavit zarážky tabulátoru na pole velikostí, použijte verzi se dvěma parametry.
Tato členová funkce je zpracována pouze víceřádkovými ovládacími prvky pro úpravy.
SetTabStops
automaticky nepřekresluje okno pro úpravy. Pokud změníte zarážky tabulátoru pro text, který už v ovládacím prvku pro úpravy obsahuje, zavolejte CWnd::InvalidateRect a překreslejte okno pro úpravy.
Další informace naleznete v tématu EM_SETTABSTOPS a GetDialogBaseUnits v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CEditView::SetTabStops.
CEdit::ShowBalloonTip
Zobrazí bublinový tip přidružený k aktuálnímu ovládacímu prvku pro úpravy.
BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);
BOOL ShowBalloonTip(
LPCWSTR lpszTitle,
LPCWSTR lpszText,
INT ttiIcon = TTI_NONE);
Parametry
pEditBalloonTip
[v] Ukazatel na strukturu EDITBALLOONTIP , která popisuje tip bubliny.
lpszTitle
[v] Ukazatel na řetězec Unicode, který obsahuje název bublinového tipu.
lpszText
[v] Ukazatel na řetězec Unicode, který obsahuje text tipu bubliny.
ttiIcon
[v] Int, který určuje typ ikony, která se má přidružit k tipu bubliny. Výchozí hodnota je TTI_NONE. Další informace naleznete v ttiIcon
členu EDITBALLOONTIP struktury.
Návratová hodnota
TRUE, pokud tato metoda je úspěšná; jinak NEPRAVDA.
Poznámky
Tato funkce odešle EM_SHOWBALLOONTIP zprávu, která je popsaná v sadě Windows SDK. Další informace najdete v Edit_ShowBalloonTip makrech.
Příklad
První příklad kódu definuje proměnnou, m_cedit
která se používá pro přístup k aktuálnímu ovládacímu prvku pro úpravy. Tato proměnná se používá v dalším příkladu.
public:
// Variable to access the edit control.
CEdit m_cedit;
Následující příklad kódu zobrazí bublinový tip pro ovládací prvek pro úpravy. Metoda CEdit::ShowBalloonTip určuje název a text tipu bubliny.
m_cedit.ShowBalloonTip(
_T("CEdit Balloon Tip"), // title
_T("Here's a tip!"), // text
TTI_INFO);
CEdit::Undo
Voláním této funkce vrátíte zpět poslední operaci ovládacího prvku pro úpravy.
BOOL Undo();
Návratová hodnota
U ovládacího prvku pro úpravy s jedním řádkem je návratová hodnota vždy nenulová. U ovládacího prvku pro úpravy více řádků je návratová hodnota nenulová, pokud je operace vrácení zpět úspěšná, nebo 0, pokud operace vrácení zpět selže.
Poznámky
Operaci vrácení zpět lze také vrátit zpět. Odstraněný text můžete například obnovit při prvním volání Undo
. Pokud neexistuje žádná operace úpravy, můžete text znovu odebrat s druhým voláním Undo
.
Další informace najdete v tématu EM_UNDO v sadě Windows SDK.
Příklad
// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
m_myEdit.Undo();
Viz také
MFC – ukázka CALCDRIV
Ukázková CMNCTRL2 MFC
CWnd – třída
Graf hierarchie
CWnd – třída
CButton – třída
CComboBox – třída
CListBox – třída
CScrollBar – třída
CStatic – třída
CDialog – třída