Главная Обратная связь

Дисциплины:






РОЗРОБКА МЕНЮ ПРОГРАМИ



 

Інтерфейс користувача — сукупність засобів для обробки та відображення інформації, максимально пристосованих для зручності користувача; у графічних системах інтерфейс користувача реалізовується багатовіконним режимом, змінами кольору, розміру, видимості (прозорість, напівпрозорість, невидимість) вікон, їхнім розташуванням, сортуванням елементів вікон, гнучкими налаштовуваннями як самих вікон, так і окремих їхніх елементів (файли, папки, ярлики, шрифти тощо), доступністю багатокористувацьких налаштувань (Рис. 3.1).

 

Рис. 3.1 – Графічний інтерфейс користувача в Windows

 

Меню — елемент інтерфейсу користувача, що дозволяє вибрати одну з декількох перерахованих опцій програми.

Процес створення меню в MFC-програмах складається із трьох етапів:

1) створення шаблона меню;

2) підключення ресурсу меню до головної програми;

3) обробка повідомлень від команд меню. [4]

Створення шаблона меню відбувається доданням нового ресурсу в пункті меню Edit - Add Resource (Рис. 3.2).

3.2 – Додання нового ресурсу (меню)

 

Наступним пунктом потрібно підключити ресурс меню до головної програми. Існує декілька способів вказування ідентифікатора ресурсу меню в MFC-програмах.

Перший спосіб базується на використанні методу Create() класу CFrameWnd, який створює головне вікно програми. В цьому методі можна вказати спеціальний макрос MAKEINTRESOURCE, аргументом якого буде ідентифікатор підключуваного ресурсу меню.

CMyFrameWnd::CMyFrameWnd()

{

Create(NULL,"Студенка 1КІ-11Б Колесніченко Марина Андріївна",

WS_OVERLAPPEDWINDOW,rectDefault,NULL,

MAKEINTRESOURCE(IDR_MAINFRAME));

};

Другий спосіб базується на використанні методу LoadFrame(), який викликається в методі InitInstance() класу, похідному від бібліотечного класу CWinApp.

Після додання нового меню, йому присвоюється ідентифікатор IDR_MAINFRAME і мова оформлення меню [Английский(США)], оскільки згідно з індивідуальним завданням пункти меню потрібно записувати на англійській мові. [5]

Ідентифікатори меню та всіх пунктів меню мають бути представлені в заголовочному файлі ресурсів Resource.h:

#define IDR_MAINFRAME 101

#define ID_EXIT 40008

Отже, виконуючи перші два пункти отримуємо такий візуальний шаблон меню (Рис. 3.3). Кожен пункт меню отримує певні атрибути, наприклад, назва пункту, чи спадний даний пункт меню та інші, як показано на рисунку 3.4.

Рис. 3.3 – Візуальний шаблон меню

 

Рис. 3.4 – Вікно властивостей

 

Останній і не менш важливий крок створення функцій-обробників. Обробку повідомлень від команд меню в головному програмному файлі проекту необхідно виконати в такій послідовності.



1. В класі вікна з рамкою CMyFrameWnd оголосити функції-обробники всіх пунктів меню.

2. Включити в карту повідомлень MESSAGE_MAP макроси, які зв’язують ідентифікатори кожного пункту меню з функцією-обробником.

3. Написати всі функції-обробники, які були вказані в класі вікна з рамкою CMyFrameWnd та карті повідомлень MESSAGE_MAP.

Отже в результаті виконання цих пунктів отримаємо:

class CMyFrameWnd:public CFrameWnd

{ public:

CMyFrameWnd();

protected:

CStatusBar m_wndStatusBar;

CToolBar m_wndToolBar;

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

DECLARE_MESSAGE_MAP();

public:

afx_msg void OnExit();

afx_msg void OnAboutHelp();

afx_msg void OnAboutAbout();

afx_msg void OnFileDelete();

afx_msg void OnFileSave40003();

afx_msg void OnCalcRun();

afx_msg void OnFileRename();

afx_msg void OnCalcDraw();

};

BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)

ON_WM_CREATE()

ON_COMMAND(ID_EXIT, &CMyFrameWnd::OnExit)

ON_COMMAND(ID_ABOUT_HELP, &CMyFrameWnd::OnAboutHelp)

ON_COMMAND(ID_ABOUT_ABOUT, &CMyFrameWnd::OnAboutAbout)

ON_COMMAND(ID_FILE_DELETE, &CMyFrameWnd::OnFileDelete)

ON_COMMAND(ID_FILE_SAVE40003, &CMyFrameWnd::OnFileSave40003)

ON_COMMAND(ID_CALC_RUN, &CMyFrameWnd::OnCalcRun)

ON_COMMAND(ID_FILE_RENAME, &CMyFrameWnd::OnFileRename)

ON_COMMAND(ID_CALC_DRAW, &CMyFrameWnd::OnCalcDraw)

END_MESSAGE_MAP();

void CMyFrameWnd::OnAboutAbout()

{

MessageBox("Виконала студентка групи 1КІ-11Б \nКолесніченко Марина Андріївна","About"); }





sdamzavas.net - 2017 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...