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