пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Створення головного меню програми (робота у редакторі ресурсів, варіанти підключення).

Создайте графический ресурс меню, используя редактор ресурсов Visual C ++. Определите пункты меню программы. Далее сохраните графический ресурс меню (файл с расширением *.rc) и добавьте его в проект, для этого следует выбрать пункт "Project" меню Visual C ++, далее "Add to project", "Files" и выбрать необходимый ресурсный файл. После этого соответствующая страница ResourceView появляется внизу окна структуры проекта. В карте сообщений программы каждому пункту меню, представленый собственным идентификатором, с помощью макрокоманды ON_COMMAND () поставьте в соответствие функцию-обработчик:

ON_COMMAND (ID_FILE_NEWITEM, OnNewItem)

То есть здесь пункта с идентификатором ID_FILE_NEWITEM отвечает функция OnNewItem (), а пункта ID_FILE_EXIT - функция OnExit (). В классе главного окна определите прототипы обработчиков пунктов меню. После этого класс окна будет выглядеть на-ступним образом:

class CMainWin: public CFrameWnd

[Public: void OnExit ();

void OnNewItem ();

CMainWin ();

DECLARE_MESSAGE_MAP ()  ];

Реализуйте тексты обработчиков пунктов меню, например:

void CMainWin :: OnExit ()

[Int response = MessageBox ("Закончить работу", "Информация", MB_ ICONQUESTION | MB_YESNO);

  if (response == IDYES) SendMessage (WM_CLOSE);

]

Подключите меню к выводу главного окна программы. Это можно сделать двумя способами, приведены в примерах конструкторов главного меню:

Конструктор с макросом MAKEINTRESOURCE ()

CMainWin :: CMainWin ()

[Create (NULL, "Простая MFC-программа", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE (IDR_MENU1));

]

Конструктор с объектом меню

CMainWin :: CMainWin ()

[Create (NULL, "Простая MFC-программа");

my_menu.LoadMenu (IDR_MENU1);

SetMenu (& my_menu);

]

Первый пример выглядит несколько сложнее. В нем загрузки меню обеспечивается макросом MAKEINTRESOURCE () (сделать внутренним ресурс), который идет только 6-м параметром, и создает длинную строку параметров. Второй пример потребует объявления переменной для меню следует включить в класс главного окна, например:  CMenu my_menu;

Также здесь необходимы два вызова функций - загрузки ресурса меню в соответствующий объект (my_menu.LoadMenu ()) и подключения меню к окну (SetMenu ()).


22.06.2015; 09:38
хиты: 212
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь