CEdit::SetHandle
Chame essa função para conjunto o identificador para o local de memória 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.Esse identificador deve ter sido criado por uma telefonar anterior a LocalAlloc Função do Windows usando o LMEM_MOVEABLE sinalizar.Presume-se que a memória contém uma seqüência de caracteres terminada com caractere nulo.Se não for esse o caso, o primeiro byte de memória alocada deve ser definido como 0.
Comentários
O controle de edição, em seguida, usará esse buffer para armazenar o texto exibido no momento em vez de alocar buffer de seu próprio.
Esta função de membro é processada somente por controles de edição de várias linhas.
Antes de um aplicativo define uma nova alça de memória, ele deve usar o GetHandle função de membro para obter o identificador para o buffer de memória corrente e liberar memória usando o LocalFree Função do Windows.
SetHandle Limpa o buffer de desfazer (o CanUndo função de membro retorna 0) e o sinalizar de modificação interno (o GetModifyfunção de membro , em seguida, retorna 0).A janela controle de edição é redesenhada.
Você pode usar esta função de membro em um controle de edição de várias linhas em uma caixa de diálogo somente se você tiver criado a caixa de diálogo com o DS_LOCALEDIT conjunto de sinalizadores de estilo.
Observação: |
---|
GetHandle não funciona com o Windows 95/98.Se você chamar GetHandle no Windows 95/98, ela retornará NULO.GetHandle funcionará conforme documentado no Windows NT, sistema autônomo versões 3.51 e posteriores. |
Para obter mais informações, consulte EM_SETHANDLE, LocalAlloc, and LocalFree in the 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