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