CEdit::SetHandle
呼叫此函式將控制代碼設定為將由多行編輯控制項所使用的本機記憶體。
void SetHandle(
HLOCAL hBuffer
);
參數
- hBuffer
包含控制代碼至本機記憶體。 必須由 LocalAlloc Windows 函式的呼叫所建立 LMEM_MOVEABLE 使用旗標,這個控制代碼。 記憶體假設包含 null 結尾的字串。 如果情況並非如此,則應設定配置記憶體的第一個位元組設為 0。
備註
編輯控制項就會使用這個緩衝區儲存目前顯示的文字而不是將它的緩衝區。
此成員函式以多行編輯控制項只處理。
在應用程式設定新的記憶體控制代碼之前,使用 LocalFree Windows 函式,則應該使用 GetHandle 成員函式的控制代碼目前記憶體緩衝區和釋放該記憶體。
SetHandle 清除復原緩衝區 ( CanUndo 成員函式就會傳回 0) 和內部修改旗標 ( GetModify 成員函式就會傳回 0。 視窗控制項重繪。
才會建立具有 DS_LOCALEDIT 樣式旗標集的對話方塊,您可以在 對話方塊中的多行編輯控制項可以使用這個成員函式。
注意事項 |
---|
GetHandle 不會與 Windows 95 /98 一起使用。如果您呼叫在 Windows 95 /98 的 GetHandle ,它將會傳回 NULL。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