Freigeben über


CEdit::SetHandle

Rufen Sie diese Funktion auf, um das Handle für den lokalen Speicher festzulegen, der durch ein mehrzeiliges Bearbeitungssteuerelement verwendet wird.

void SetHandle(
   HLOCAL hBuffer 
);

Parameter

  • hBuffer
    Enthält ein Handle für den lokalen Speicher.Dieses Handle muss einen vorherigen Aufruf der LocalAlloc Windows-Funktion mithilfe des LMEM_MOVEABLE-Flags erstellt worden sein.Der Speicher wird angenommen, dass eine auf NULL endende Zeichenfolge zu enthalten.Wenn das nicht der Fall ist sollte das erste Byte des reservierten Arbeitsspeicher auf 0 festgelegt werden.

Hinweise

Das Bearbeitungssteuerelement verwendet dann diesen Puffer, um den aktuell angezeigten Text zu speichern, anstatt einen eigenen Puffer zuzuordnen.

Diese Memberfunktion wird nur von mehrzeilige Bearbeitungssteuerelemente verarbeitet.

Bevor eine Anwendung ein neues Speicherhandle festlegt, sollte die GetHandle-Memberfunktion verwenden, um das Handle für den aktuellen Arbeitsspeicherpuffer abzurufen und diesen Arbeitsspeicher mithilfe der LocalFree Windows-Funktion freizugeben.

SetHandle löscht den annulierenspuffer (die CanUndo-Memberfunktion gibt 0 zurück) und das interne Änderungsflag (die GetModify-Memberfunktion gibt 0 zurück).Das Edit-Steuerelement-Fenster wird neu gezeichnet.

Sie können diese Memberfunktion in einem mehrzeiligen Bearbeitungssteuerelement in einem Dialogfeld nur verwenden, wenn Sie das Dialogfeld mit dem DS_LOCALEDIT Formatflagssatz erstellt haben.

HinweisHinweis

GetHandle funktioniert nicht mit Windows 95/98.Wenn Sie GetHandle in Windows 95/98 aufrufen, gibt es NULL zurück.GetHandle funktioniert, wie unter Windows NT, Version 3.51 und höher dokumentiert.

Weitere Informationen finden Sie unter EM_SETHANDLE, LocalAlloc und LocalFree in Windows SDK.

Beispiel

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

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CEdit-Klasse

Hierarchien-Diagramm

CEdit::CanUndo

CEdit::GetHandle

CEdit::GetModify