Программирование >>  Процедурные приложения 

1 ... 111 112 113 [ 114 ] 115 116 117 ... 150


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



1 ... 111 112 113 [ 114 ] 115 116 117 ... 150

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