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

1 ... 136 137 138 [ 139 ] 140 141 142 ... 159


void my win::SetupWindow{) { TWindow::SetupWindow();

my box1 -> AddStringCMINSK );

my box1 -> AddString( BREST );

my box1 -> AddString( MOSCOW );

my box2 -> DirectoryList(0, c:\\*.* ); } void my win::EvSelChange() 3

{ MessageBox( A list item is selected ); } void my win::EvDblClk{) 6

{ MessageBox( Double click selection );} void my app::lnitMainWindow(void)

{ SetMainWindow{new TFrameWindow(0, List box ,new my win));

GetMainWindowO -> EnableKBHandlerQ; } int OwlMain{int, char**) { return my app().Run(); }

Программа демонстрирует обработку сообщений, поступающих от окна со списком. Когда Вы выбираете что-то в окне со списком, то посылается сообщение LBN XXXX родительскому окну. При этом можно использовать следующий список сообщений и соответствующих им макроимен в таблице откликов 9.2 [14]:

Табл 9.2

Сообщение

Макроимя (вход II таблицу отклика)

Действия,следствием

которых является генерация сообп(ения

LBN DBLCLK

LBN ERRSPACE LBN KILLFOCUS LBN SELCANCEL LBN SELCHANGE

LBN SETFOCUS

EV LBN DBLCLK

EV LBN ERRSPACE EV LBN KILLFOCUS EV LBN SELCANCEL EV LBN SELCHANGE

EV LBN SETFOCUS

Строка в списке выбрана двойным нажатием кнопки манипулятора мышь Строка выбрана вне списка Список не выбран Выбор отменен Строка в списке выбрана нажатием кнопки манипулятора мышь Список выбран

Класс my win в программе использует функции отклика, реагирующие на рассмотренные выше сообщения. Например, макро EV LBN SELCHANGE(ID Ll,EvSelChange) перехва-



Список 1

Функция EnableKBHandle позволяет исполь зовать клавишу табуляции для переключения между двумя списками


List box

my p 1 .срр prog.txt myjl.exe my J) 1 .obj pict.bmp

The list box 1 ID

. Список 2

Каталог CiV

myJoi2-:iDirectoryList(0. c:\\ . );

1. Новый выбор:

эту операцию можно вьшолнять с клавиатуры (клавиши со стрелками) или с помощью манипулятора мышь

2. Этот вход будет активизирован \

EV LBN SELCHANGE(ID LI EvSelChange,).


3. Вызов этой функщш

4. Двойное нажатие клаВ1Ш1и манипулятора мышь


EvSelChangcO

Вывод окна сообщений

5. Этот вход будет активизирован

EV LBN DBLCLK(I D L2,EvpblClk,).


Рис. 9.40. Иллюстрация некоторых действий программы



тывает сообщение LBN SELCHANGE, поступающее от окна списков с идентификатором ID L1, и вызывает функцию отклика EvSelChange.

На рис. 9.40 приведен возможный сценарий работы с программой.

9.5.8. Комбинированные окна (combo box control)

Такие средства управления объединяют окна списков и окна редактирования (рис. 9.41). В результате можно выделить строку в списке и поместить ее в окно редактирования. Работа с комбинированными окнами поддерживается объектами класса TComboBox, который наследуется из класса TListBox.

Рассмотрим простую программу.

#include <owl\appiicat.h> в комментариях указаны #include <owl\framewin.h> номера соответствующих

пунктов на рис. 9.42 #include <owl\combobox.h> class my app : public TApplication { public:

my app() : TApplication() { } protected:

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

my win();

Окно

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

E

Список

1 * Кнопка управления

списком

Рис. 9.41. Комбинированное окно



1 ... 136 137 138 [ 139 ] 140 141 142 ... 159

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