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

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



EV CHlLD,NOTIFY(EDlT lD,UPDATE WlNPOW,Updatc,)

3. Акгшякаипя nolo вчода

4. ВьЕюв ()\11КЦ1П1 Updaltf

5. Обновление окна

Рис. 9.36. Обработка сообщения UPDATE WINDOW

inline int GetNumLines(void);

Она возвращает число строк, которые были введены в многострочное ОКНО редактирования.

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

inline void GetSelection(UINT& startPos, UINT& endPos);

Она позволяет получить начальную позицию (startPos) и конечную позицию (endPos) выделенного текста.

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

inline int GetLineFromPos(UINT charPos);

Она возвращает номер строки, в которой записан символ с номером ciiarPos.

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

int GetLineLengtii(int lineNumber);

Она возвращает число символов в строке с номером lineNumber.

Некоторые из рассмотренных функций имеют более широкую область применения. Всю необходимую информацию по этим вопросам можно найти в соответствующих руководствах [14].



В теле переопределенных функций EvLButtonDown, EvRButtonDown и EvKeyDown необходимо вызывать оригинальные функции, поскольку они используются объектами классов, поддерживающих операции редактирования (например, TEdit::EvLButtonDown(modKey,point); TEdit::EvKeyDown (key,repeatCount,flags);).

Рис. 9.37 демонстрирует три возможных сценария работы с приведенной программой.

Сценарии I.

мыггеь

1. Нажа i нс лсвон кнопки

I 3. Посылка сообщения родительскому окн> СиснарнГг 2.


2. Вызов функцииlEvLBultonDouiii


Сценарий .У

/ Клат[ат\ра /

I. Нажатие .побои клавшей

2. Удаление вы;1еленного TCKcia и копирование ею во вп\ феннии 6\фер

3. Выпо.7неннедействн11 сценария 1

2. Выполнение действий с[1енария 1

Рис. 9.37. Возможные сценарии работы с простейшим текстовым редактором



9.5.6. Окна сканирования (scroll bar control)

Окна сканирования, или скроллинга, дают возможность выбора значения из некоторого заданного диапазона значений. Система WINDOWS позволяет работать как с самостоятельными окнами сканирования, так и с окнами сканирования, являющимися частью других окон. Данные средства управления поддерживаются объектами класса TScroUBar, который наследуется из класса TControl. Рассмотрим простую программу.

#include <owl\applicat.h> #include <owl\framewin.h> #include <owl\scrollba.h> class my app : public TApplication { public:

my app() : TApplicationO { } protected:

virtual void lnitMainWindow{void); }; class my win : public TWindow { public:

my win(); protected:

TScrollBar* my scroll 1;

TScrollBar* my scroll 2;

TEdit* my edit 1;

TEdit* my edit 2;

void EvHScroll (UINT,U1NT,HWND); функция отклика void EvVScroll (UINT,UINT,HWND); функция отклика DECLARE RESPONSE TABLE(my win); }; DEFINE RESPONSE TABLE1(my win,TWindow)

EV WM HSCROLL, активизируются при перемещении EV WM VSCROLL, горизонтального (Н) и

вертикального (V) указателей END RESPONSE TABLE; my win::my win () : TWindow(0,0,0)

{ my scroll 1 = new TScrollBar (this,-1,20,60,200,20,TRUE); my scroll 2 = new TScrollBar (this,-1,580,20,20,200,FALSE);



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

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