Виділення в буфер текст

Коли система створює текстове поле, вона автоматично створює текстовий буфер, встановлює його початковий розмір і збільшує розмір при необхідності. Розмір може бути до попередньо визначені межі приблизно 32 кілобайт за однорядковий елементах керування. Тому що це обмеження можна змінити, це називається м'який ліміт. Додаток можна установити жорсткий ліміт розмір буфера, надіславши повідомлення EM_SETLIMITTEXT для редагування елемента керування. Якщо буфер перевищує обмеження для будь-якого, система надсилає застосунок повідомлення EN_ERRSPACE . Заявку можна отримати ліміту текст шляхом надсилання повідомлення EM_GETLIMITTEXT.

Система створює в буфер редагування керування в діалоговому вікні, використання пам'яті за межами програми сегмента даних. Застосунок може не показувати цю поведінку за замовчуванням виділення і створити буфер від своїх місцевих за допомогою стилю DS_LOCALEDIT, під час створення елемента керування edit. Застосунок, що використовує стиль DS_LOCALEDIT несе відповідальність за всі буфер асигнування. Щоб початкове виділення, заявку можна зателефонувати в LocalAlloc функції і прохід повернувся буфер обробляти до елемента керування edit надіслати повідомлення EM_SETHANDLE . Зробити наступні асигнування (у відповідь на повідомлення EN_ERRSPACE наприклад), додаток слід зберегти поточний вміст буфера (якщо потрібно) та отримання нових буфер наступним чином

  1. Отримати ручку пам'яті, що наразі розподілені для тексту в елементі керування багаторядковий текст за допомогою елемента керування повідомлення EM_GETHANDLE.
  2. Безкоштовні буфер, зателефонувавши на LocalFree функції.
  3. Отримати новий буфера (і буфера ручкою), зателефонувавши LocalAlloc.
  4. Дати маркер буфера в систему за допомогою елемента керування повідомлення EM_SETHANDLE.

EM_SETHANDLE та EM_GETHANDLE повідомлення застосовуються лише до елементів керування багаторядковий текст.

Програма, яка використовує розподіл поведінку за промовчанням (тобто, не використовувати стиль DS_LOCALEDIT) не потрібно надіслати повідомлення EM_SETHANDLE та EM_GETHANDLE контроль редагування.

Надсилання повідомлення EM_SETHANDLE має кілька побічні ефекти: вона очищає скасувати прапор (що EM_CANUNDO повідомлення, повертати нуль), це очищає змінити прапор (що EM_GETMODIFY повідомлення, повертати нуль) та його Перемальовує вікно керування редагування.

Index