CEdit::SetHandle
Appelez cette fonction pour définir le handle vers la mémoire locale qui sera utilisée par un contrôle d'édition multiligne.
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 de LocalAlloc à l'aide de l'indicateur LMEM_MOVEABLE . Il est supposé que la mémoire contient une chaîne terminée par le caractère NULL. Si ce n'est pas le cas, le premier octet de la mémoire allouée doit avoir la valeur 0.
Notes
Le contrôle d'édition utilisera cette mémoire tampon pour stocker actuellement le texte affiché au lieu d'allouer sa propre mémoire tampon.
Cette fonction membre est traitée uniquement par les contrôles d'édition multiligne.
Avant qu'une application définit une nouvelle handle de mémoire, elle doit utiliser la fonction membre de GetHandle pour obtenir le handle dans la mémoire tampon de mémoire actuel et pour libérer la mémoire à l'aide de la fonction Windows de LocalFree .
SetHandle efface la mémoire tampon d'annulation (la fonction membre de CanUndo puis retourne 0) et l'indicateur interne de modification (la fonction membre de GetModify puis retourne 0). La fenêtre de contrôle edit est redessinée.
Vous pouvez utiliser cette fonction membre dans un contrôle d'édition multiligne dans une boîte de dialogue uniquement si vous avez créé la boîte de dialogue avec l'indicateur de style de DS_LOCALEDIT .
Notes
GetHandle ne fonctionnera pas avec Windows 95/98.Si vous appelez GetHandle dans Windows 95/98, il retourne NULL.GetHandle fonctionnera comme documenté sous Windows NT, les versions 3,51 et ultérieures.
Pour plus d'informations, consultez EM_SETHANDLE, LocalAlloc, et le LocalFree dans Kit de développement logiciel 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);
Configuration requise
Header: afxwin.h