|
Программирование >> Программирование на языке c++
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);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |