CEdit::SetHandle
Chamar essa função para definir a alça a memória local que será usada por um controle de edição de várias linhas.
void SetHandle(
HLOCAL hBuffer
);
Parâmetros
- hBuffer
Contém um identificador para a memória local. Este identificador deve ter sido criado por uma chamada anterior à função do windows de LocalAlloc usando o sinalizador de LMEM_MOVEABLE . a memória é assumida para conter uma cadeia de caracteres NULL-finalizada. Se esse não é o caso, o primeiro byte de memória alocada deve ser definido como 0.
Comentários
O controle de edição usará esse buffer para armazenar texto atualmente exibido em vez de atribuir seu próprio buffer.
Essa função de membro é processada por controles de edição de várias linhas.
Antes que um aplicativo define um novo identificador de memória, deve usar a função de membro de GetHandle para obter o identificador atual para o buffer de memória e liberar a memória usando a função do windows de LocalFree .
SetHandle limpa o buffer (desfazer a função de membro de CanUndo então retorna 0) e o sinalizador de alteração internos (função de membro de GetModify então retorna 0). A janela de editions controle é redesenhada.
Você pode usar essa função de membro em um controle de edição de várias linhas em uma caixa de diálogo somente se você criou a caixa de diálogo com o conjunto de sinalizador de estilo de DS_LOCALEDIT .
Dica
GetHandle não funcionará com Windows 95 /98.Se você chamar GetHandle no Windows 95, retornará NULO/98.GetHandle funcionará como documentado em, Windows NT 3,51 e versões posteriores.
Para obter mais informações, consulte EM_SETHANDLE, LocalAlloc, e LocalFree em Windows SDK.
Exemplo
// 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);
Requisitos
Cabeçalho: afxwin.h