|
Программирование >> Процедурные приложения
on command(), поддерживает обработку сообщений, связанных с выбором команд меню. Здесь для каждой команды указывается свой обработчик. BEGIN MESSAGE MAP(CMainWnd, CFrameWnd) ON WM PAINT() ON WM SIZE() ON WM CREATE () ON COMMAND(IDM ABOUT, OnAbout) ON COMMAND(IDM FOUR, OnFourierData) ON COMMAND(IDM EXIT, OnExit) END MESSAGE MAP() Как уже было сказано, наличие схемы сообщений позволяет избежать использог вания в программе сложных и чреватых ошибками конструкций с операторами switch/case. Запуск программы После запуска программы в окне приложения будет построен заданный по умолчанию ряд Фурье, состоящий из одного члена, что соответствует синусоиде (рис. 19.6). На рис. 19.7 показан ряд Фурье. Рис. 19.6. График, выводимый по умолчанию Рис. 19.7. Ряд Фурье из n членов Построение гистограмм Последний пример в этой главе представляет собой программу, которая на основании вводимых пользователем данных строит гистограммы. В этой программе также используются ресурсы, в том числе меню, диалоговое окно About и диалоговое окно для ввода данных. В проект входят четыре файла: файл заголовков BARCHART.H, файл ресурсов BARCHARTR.H, файл сценариев ресурсов BARCHART.RCи программный файл BARCHART.CPP. Файл BARCHART.Hсодержит описания классов CMainWnd, CTheAppИ CBarDataDialog: class CMainWnd : public CFrameWnd public: CMainWnd () ; afx msg void OnPaintO; afx msg void OnSizeCUINT, int, int); afx msg int OnCreate(LPCREATESTRUCT cs); afx msg void OnAboutO; afx msg void OnBarData (); afx msg void OnExitO; DECLARE MESSAGE MAP () class CTheApp : public CWinApp public: virtual BOOL Initlnstance (); }; class CBarDataDialog : public CDialog < public: CBarDataDialog (CWnd* pParentWnd=NULL) : CDialog ( BarDlgBox , pParentWnd) { } virtual void OnOK(); }; Файл BARCHARTR.Hсодержит идентификаторы команд меню и элементов управления диалоговых окон: #define IDM ABOUT 10 #define IDM INPUT 20 #define IDM EXIT 30 #define DM TITLE 300 #define DM XLABEL 301 #define DM YLABEL 302 #define DM P1 303 #define DM P2 304 #define DM P3 305 Idefine DM P4 306 #define DM P5 307 #define DM P6 308 #define DM P7 309 #define DM P8 310 f define DM P9 311 #define DM P10 312 Описания меню и двух диалоговых окно представлены в файле BARCHART.RC: #include resource. h # include barchartr .h #define APSTODIO READONLY SYMBOLS
#define APSTODIO HIDDEN SYMBOLS #include windows.h #undef APSTUDIO HIDDEN SYMBOLS #include afxres.h
#undef APSTUDIO READONLY SYMBOLS
Ресурсы для английского (США) языка #if !defined(AFX RESOURCE DLL) defined(AFX TARG ENU) #ifdef WIN32 LANGUAGE LANGENGLISH, SUBLANG ENGLISH US tpragma code page(1252) #endif WIN32
Меню BARMENU MENU DISCARDABLE BEGIN POPUP Bar Chart BEGIN MENUITEM About Box... ,IDM ABOUT MENUITEM Bar Values... ,IDM INPUT MENUITEM Exit , IDM EXIT END END
Диалоговые окна ABOUTDLGBOX DIALOG DISCARDABLE 14,22, 200, 75 STYLE WS POPUP I WS CAPTION CAPTION About Box BEGIN CTEXT A Bar Chart Application , -1,30,5, 144,8 CTEXT A Simple MFC Windows Application1;, -1,30,17,144, 8
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |