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

1 ... 142 143 144 [ 145 ] 146 147 148 ... 159


CM PORTUGAL, Displays Information about Portugal

CM AVEIRO BITMAP {

CM PORTUGAL BITMAP

#endif

Программа будет строить окно, включающее меню с именем Information и два поля (окна). Первое окно управления расположено в BepxHcii части главного окна и содержит три иконки (gadgets), выбор которых равноценен выбору соответствующих пунктов меню. При выборе любой иконки (при нажатии левой клавиши манипулятора мышь ) в окне статуса отображается строка подсказки. Окно статуса расположено в нижней части главного окна. Конструктор

TStatusBar *sb = new TStatusBar(frame, TGadget::Recessed);

строит окно статуса в окне-родителе frame. Значение TGadget::Recessed задает стиль для окна статуса.

Окно управления содержит различные иконки (gadgets), которые дублируют действие пунктов меню. Конструктор

TControlBar *cb = new TControlBar(frame);

строит окно управления в окне-родителе frame.

После конструирования окон статуса и управления необходимо вставить (добавить) их в главное окно. Для этих целей используются компоненты-функции с именем Insert. Функция TGadgetWindow::Insert вставляет иконку до или после других иконок. В нашем примере эта функция имеет только один параметр - объект класса TButtonGadget. Конст-

CM MINSK BITMAP описание битовых карт { для трех иконок (gadgets)

42 4D 36 14 00 00 00 00 00 00 36 04 00 00 28 00



руктор ЭТОГО класса имеет два параметра: идентификатор битовой карты для иконки и идентификатор иконки. По умолчанию функция Insert вставляет иконку после других иконок (второй аргумент этой функции может принимать значения After - после или Before - перед). Функция TDecoratedFrame: :Insert вставляет окна статуса и контроля в верхней, нижней, левой или правой части главного окна. В нашей программе мы вставили окно статуса в нижнюю часть (Bottom) и окно управления - в верхнюю часть (Тор). Кроме рассмотренных значений Bottom и Тор, второй параметр функции Insert может принимать значения Left и Right. При выводе текста подсказки можно использовать три режима, которые задаются значениями перечисления THintMode. Этими режимами являются: отсутствие подсказки (значение NoHints); вывод подсказки при перемещении курсора на соответствующую иконку (gadget) и нажатии левой кнопки манипулятора мышь (значение PressHints, которое задается по умолчанию); вывод подсказки при перемещении курсора манипулятора мышь на соответствующую иконку (значение EnterHints). Режим можно установить с помощью функции TGadgetWindow::SetHintMode(THintMode hintMode) и прочитать с помощью функции TGadgetWindow::GetHintMode().

9.6.6. Использование средств VBX (Visual Basic)

При использовании этих средств управления сначала необходимо установить соответствующие библиотеки. Для этих целей в инструменте Resource Woricshop необходимо последовательно выбрать пункты меню File - Install Control Libraries и далее установить имеющиеся в библиотеке файлы *.vbx (или *.dll). Использование средств VBX рассмотрим на примере:

Здесь необходимо вставить фрагмент 1 (см. § 9.4)

#include <owl\vbxctl.h>

#include vbxctlx.h

class my dlg : public TDialog, public TVbxEventHandler { public:

my dlg(TWindow* parent, TResID ResId):

TDialog(parent, ResId), TWindow{parent) {} protected:



void EvMouseMove(VBXEVENT far*); void EvClick{VBXEVENT far*); DECLARE RESPONSE TABLE{my dlg); }; здесь класс my dlg имеет двух родителей DEFINE RESP0NSE TABLE2(my dlg, TDialog, TVbxEventHandler) EV VBXEVENTNAME(IDC BIPICT1, MouseMove ,EvMouseMove), EV VBXEVENTNAME(IDC BIPICT2, Click ,EvClick), END RESPONSE TABLE; void my dlg::EvMouseMove(VBXEVENT far*) { MessageBeep(O); } void my dlg:;EvClick(VBXEVENT far*) { for(int i=0; i<100; i++)

MessageBeep(MB ICONASTERISK); } class my app : public TApplication { public:

my app() : TApplication() {} protected: void InitMainWindowQ; void call dlg(); DECLARE RESPONSE TABLE(my app); };

DEFINE RESP0NSE TABLE1(my app)

EV COMMAND{VBX, call dlg), END RESPONSE TABLE; void my app::lnitMainWindow() { SetMainWindow{new TFrameWindow(0, Example ));

GetMainWindow()->AssignMenu( COMMANDS ); } void my app::call dlg()

{ my dlg(GetMainWindow(),VBX CALL).Execute{); }

int OwlMain(int, char**)

{ TBIVbxLibrary vbxLib; загрузка и установка библиотеки return my app{).Run{); }

При использовании средств управления VBX необходимо построить производный класс от класса TVbxEventHandler и интерфейсного класса, поддерживающего работу с главным



1 ... 142 143 144 [ 145 ] 146 147 148 ... 159

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