|
Программирование >> Программирование на языке c++
POPUP &town names MENUITEM &Aveiro , CM AVEIRO CM AVEIRO - имя пункта MENUITEM &Minsk , CM MINSK CM MINSK -- имя пункта MENUITEM SEPARATOR задание горизонтального разделителя MENUITEM E&xit , CM EXIT CM EXIT - сис- темное имя пункта Файл проекта (*.ide) для нашей программы будет включать файлы программы (*.срр), ресурсов (*.гс) и описания (*.def). 9.6.5. Конструирование окон статуса и управления В этом случае необходимо использовать класс TDecoratedFrame и компоненты-функции этого класса. Библиотека ObjectWindows позволяет также использовать специальные иконки, называемые gadgets. Рассмотрим пример: #include <owl\appllcat.h> #include <owl\decframe.h> #include <owl\controlb.h> #include <owl\buttonga.h> #include <owl\statusba.h> #include <owl\gdiobjec.ii> #include gadg.rc class my win : public TWindow { public: my win() : TWindow(0,0,0) {}; protected: void CmMinskO; void CmAveiroO; void CmPortugalO; DECLARE RESPONSE TABLE(my win); DEFINE RESP0NSE TABLE1(my win, TWindow) EV COMMAND(CM MiNSK, CmMinsI), EV COMMAND(CM AVEIRO, CmAveiro), EV COM M AN D(CM PORTUGAL, Cm Portugal), END RESPONSE TABLE; void my win :: CmMinskQ { MessageBoxCThe capital of Belarus , INFORMATION ); } void my win :: CmAveiro() { MessageBoxCThe town of Portugal , INFORMATION ); } void my win :: CmPortugal() { MessageBoxCEC country , INFORMATION ); } class my app : public TApplication { public: my app() : TApplication() {} void InitMainWindowO; void my app::lnitMainWindow() { Конструирование объекта класса TDecoratedFrame TDecoratedFrame* frame = new TDecoratedFrame{0, Using gadgets , new my win, TRUE); Конструирование окна статуса TStatusBar* sb = new TStatusBar(frame, TGadget::Recessed); Конструирование окна управления TControlBar *cb = new TControlBar(frame); Установка специальных иконок (gadgets) cb->lnsert{*new TButtonGadget(CM MINSK,CM MINSK, TButtonGadget::Command)); cb->lnsert{*new TButtonGadget(CM AVEIRO,CM AVEIRO, TButtonGadget::Command)); cb->lnsert(*new TSeparatorGadget); установка разделителя cb->lnsert(*new TButtonGadget(CM PORTUGAL, CM PORTUGAL, TButtonGadget::Command)); Добавление окон статуса и управления в главное окно frame->lnsert(*sb, TDecoratedFrame::Bottom); frame->lnsert(*cb, TDecoratedFrame::Top); Установка главного окна и его меню SetMainWindow(frame); GetMainWindow()->AssignMenu{COMMANDS); int OwlMain(int, char* []) { return my app().Run(); } Файл gadg.rc, созданный при помощи инструмента Resource Workshop, будет выглядеть примерно так: #ifndef WORKSHOPJNVOKED #include <windows.h> #endif #include <owi\inputdia.rc> #include <owl\except.rc> #define COMMANDS 200 #define CM PORTUGAL 203 #define CM MINSK 202 #define CM AVEIRO 201 #ifdef RCJNVOKED #include <owl\statusba.rc> COMMANDS MENU { POPUP Information MENUITEM &Aveiro , CM AVE1R0 MENUITEM &Minsk , CM MINSK MENUITEM &Portugal , CM PORTUGAL STRINGTABLE Строки, которые будут выводиться в поле { статуса при выборе соответствующего пункта меню (или иконки) CM MINSK, Displays Information about Minsk CM AVEIRO, Displays Information about Aveiro
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |