Поделиться через


CEdit::SetHandle

Эта функция вызывается, чтобы установить дескриптор локальной памяти, которая будет использоваться многономенклатурным элементом управления "Поле ввода".

void SetHandle( 
   HLOCAL hBuffer  
);

Параметры

  • hBuffer
    Содержит дескриптор локальной памяти. Этот дескриптор следует создать предыдущим вызовом функции LocalAlloc Windows с использованием пометить LMEM_MOVEABLE. Предполагается, что память null- содержит завершенную строку. Если это не так, то первый байт выделенной памяти должен быть установлен в значение 0.

Заметки

Элемент управления "Поле ввода" будет использовать этот буфер для хранения в настоящий момент текст, отображаемый, вместо выбрать свой буфер.

Это функция-член обрабатываются только многономенклатурными элементами управления "Поле ввода".

Перед приложением устанавливает новый дескриптор памяти, он должен использовать функции-члена GetHandle чтобы получить дескриптор текущий буфер памяти и освободить эту память с помощью функции LocalFree Windows.

Очищает буфер SetHandle функцию-член rollback (0) и CanUndo а затем возвращает внутренний пометить изменения (функцию-член GetModify а затем возвращает 0). Окно элемента управления "Поле ввода" перерисовать.

Можно использовать этот многономенклатурном функции-члена в элементе управления "Поле ввода" в диалоговом окне только при создании диалога с набором DS_LOCALEDIT пометить стиля.

Примечание

GetHandle не будет работать в Windows 95, /98.При вызове GetHandle в Windows 95, оно вернет NULL/98.GetHandle будет работать, как описывается в разделе Windows NT, версиями 3.51 и более поздних версий.

Дополнительные сведения см. в разделе EM_SETHANDLE, LocalAlloc и LocalFree в Windows SDK.

Пример

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

Требования

Header: afxwin.h

См. также

Ссылки

Класс CEdit

Диаграмма иерархии

CEdit::CanUndo

CEdit::GetHandle

CEdit::GetModify