Вікно редагування Edit Box

Edit Box це прямокутне вікно зумовленого класу «Edit», в якому можна вводити і редагувати текст з клавіатури За замовчуванням вікно редагування є однорядковим, з автоматичною горизонтальною прокруткою і вирівнюванням тексту по лівій межі

Для вікна редагування введені додаткові стилі, що мають префікс ES_:

• ESAUTOHSCROLL текст автоматично прокручується вправо на 10 символів, коли користувач надрукує символ наприкінці рядка Коли користувач натискає клавішу ENTER, текст прокручується в початок

• ESAUTOVSCROLL текст автоматично переміщається вгору на одну сторінку, коли користувач натискає клавішу ENTER на останньому рядку

• ESLEFT текст вирівнюється зліва

• ESLOWERCASE символи перетворюються в нижній регістр

• ESMULTILINE вікно редагування є многостроковие Значення за замовчуванням одностроковое вікно редагування тексту

• ESNOHIDESEL вибраний текст інвертується, навіть якщо панель управління не має фокусу

• ESNUMBER в поле редагування можна ввести тільки цифри

• ESPASSWORD замість кожного символу, введеного з клавіатури у вікно редагування, відображається зірочка (*) Ви може-ті використовувати повідомлення EMSETPASSWORDCHAR, щоб замінити символ, який відображається

• ESREADONLY забороняється введення або редагування тексту у вікні редагування

• ESRIGHT текст в багаторядковому вікні редагування вирівнюється по правому краю

• ESUPPERCASE всі символи перетворюються в символи верхнього регістру

Повідомлення, що посилаються вікна редагування, мають префікс ЕМ_ Часто вжиті повідомлення наведені в таблиці 31

Таблиця 31 Повідомлення для Edit Box

Код повідомлення

Значення wParam

Значення lParam

Призначення

EMSETSEL

Start

End

Виділення тексту з позиції Start до позиції End

EMGETSEL

адреса Start

адреса End

Отримання позицій Start і End виділення

EMGETLINE

Line

Buf

Копіювання рядка Line в буфер Buf

WMCLEAR

0

0

Видалення виділеного тексту

WMCUT

0

0

Видалення виділеного тексту і приміщення його в буфер обміну Windows

WMCOPY

0

0

Копіювання виділеного тексту в буфер обміну Windows

WMPASTE

0

0

Вставка тексту з буфера обміну Windows в місце поточної позиції курсора

WMGETTEXT

max

Buf

Копіювання не більше ніж max символів у буфер Buf

WMSETTEXT

0

адреса Line

Копіювання з рядка Line в редактор

Наприклад, нехай з рядка si потрібно записати 10 символів в рядок редактора з дескриптором hEditl:

invoke SendMessage,hEditl,WM_GETTEXT,10,ADDR si

Відзначимо, що для посилки повідомлення елементу управління замість SendMessage можна використовувати функцію SendDlgltemMessage, параметрами якої є дескриптор батьківського вікна, ідентифікатор елемента керування, код повідомлення, параметри wParam і IP агат

Від елемента управління EditBox в батьківське вікно надсилаються повідомлення WMCOMMAND, при цьому молодше слово параметра

wParam містить ідентифікатор редактора рядка, а старше код події з елементом управління Параметр IParam містить дескриптор елементу управління Приклади кодів подій з елементом Edit-Box: ENSETFOCUS / ENKILLFOCUS редактор отримав / втратив фокус введення, ENCHANCE текст у вікні редагування змінився, ENERRSPACE переповнення буфера редагування

Так як текстовий редактор обробляє клавіатурні повідомлення, то в циклі обробки повідомлень обовязковий виклик функції TranslateMessage

Джерело: Сучкова, ЛІ Win32 API: основи програмування: навчальний посібник / ЛІ Сучкова АлтГТУ ім ШІ Ползунова -Барнаул, АлтГТУ, 2010 138 с, іл

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*