Программирование >>  Программирование на языке c++ 

1 ... 132 133 134 [ 135 ] 136 137 138 ... 159


TEdii Class

CIlMCIIOCr

8457:пдукь кркоед егшгизОО сирпаен : ILai cHpii

Number оГ lines: □

Current line 0 number-.

Characters in line: И

Рис. 9.33. Окно для простейшего редактирования текста

Current line number - номер текущей линии, выбранный, например, с помощью манипулятора мышь ;

Characters in line - число символов в текущей линии.

Основные действия программы демонстрируются на рис. 9.34. Рассмотрим новые функции, которые были использованы в приведенной программе.

Функция отклика TEdit::EvKeyDown реагирует на сообщение EV WM KEYDOWN и имеет следующее описание:

void EvKeyDown{UINT key, UINT repeatCount, UINT flags);

где key получает значение виртуального кода нажатой клавиши клавиатуры, repeatCount получает значение числа нажатий, flags определяет режим для преобразования виртуального кода. Виртуальный код позволяет определить клавишу клавиатуры, которая была либо нажата, либо отпущена. Информацию о виртуальных кодах можно найти, например, в книге [13, с. 95-99]. В нашей программе функция EvKeyDown будет автоматически вызвана при нажатии любой клавиши клавиатуры.

Функция TWindow::SendNotification имеет следующее описание:

inline void SendNotification(int id, int notifyCode,

HWND hCtI, UINT msg = WM COMMAND);

где id - идентификатор окна-ребенка для взаимодействия между средством управления и его родителем, notifyCode - код для данного сообщения, hCtl - дескриптор окна-ребенка.



2.Конс1руирует производное окно

редактирования

class iny frame : public TFrameWindow

Конструктор]-

Компонент-функш1я Update


Э1 от K-iacc полтержнваег paooiT с главным окном

I .Конструирует окно путем вызова конструктора базового класса TFrame Wmdow

З.Ко11ст1>уирует производные обьсктьг для вывода era гического текста

TEdil class

Эю окно редакгироваии!

Nuinbcr of lines: П Current line number: Characters in line: El i

Обновляет эти значения

Результат: I. Вызывается фугасция Update

2. Обновляются все эти значения-


Когда нажимается любая кнопка, функция SendNotification Посылает сообщение родительскому окну

Рис. 9.34. Пример простейшего редактирования текста



Эта функция посылает сообщение от окна-ребенка окну-родителю (рис. 9.35 и 9.36).

Функция TEdit::Cut удаляет текущий вьщеленный текст и копирует его во внутренний буфер (Clipboard). Она описывается следующим образом:

void Cut();

Функции itoa и strcat являются библиотечными функциями языков C/C++. Первая из них преобразует целое значение (первый параметр) в строку (на которую указывает второй параметр) с учетом заданной системы счисления (третий параметр). Функция strcat добавляет одну строку (на нее указывает второй параметр) к другой (на нее указывает первый параметр).

Функция TEdit::GetNumLines имеет следующее описание:


Parent->SendNoiirication(Aitr.ld, UPDATE WINDOW,Hwindow ); N-1- , - - >v . f

Ука>ате)п. iia imiep<)eMeiii>iii объект, когорьп ! обслуживает окпо-ро;ш1ель

Идент! 1(1)1 ска top окна-ребенка

m\ edil D в iiatiieM с:1\ча(

Код сообтення ()то сообщение мы \огим получить)

Деск-1)11ПТор

соо I ncTCTByroiitcro

окна

myjramc в нащем случае

ин I ерфе1 е11Ый элемент my edit в нашем случае

Рис. 9.35. Выполнение функции SendNotification



1 ... 132 133 134 [ 135 ] 136 137 138 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика