C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 138 - Галочки рядом с меню / MFC шаг за шагом / Visual C++

Шаг 138 - Галочки рядом с меню

-----Исходное сообщение-----
От: Radovets Konstantin 
Кому: kaev@yandex.ru 
Дата: 9 марта 2000 г. 10:14
Тема: mfcbystep
Привет Артем!!!
Такого клевого сайта я еще нигде не видел.
У меня к тебе есть небольшой вопрос:
Ты не знаешь как можно   добавлять галочки или ярлычки в меню.
Например, в меню "Вид" есть подменю "Cтрока состояния"
Искренне благодарен за ответ,  Константин. 

Итак, галочки так галочки. Нет бы кто написал, мол отдохни немного мы поможем, а тут галочки :-))) И прямо после 8 марта на больную голову :-)))

Делаем проект как MFC AppWizard лучше как SDI с именем MyMenu, остальное не важно. У этого проекта будет меню честное слово. Так вот давайте переключимся на вкладку Resource. Зайдем в меню и добавим пункт test в меню Help. Для того, чтобы вообще-то галочка была всего-то нужно установить флаг checked.

138.gif (4354 b)

Теперь давайте привяжем к нему код. Лучше через Class Wizard. Если вы сделаете так же, как я то процедура обработки пункта меню должна быть такая, а код естественно сами допишите или возьмете проект.

void CMainFrame::OnHelpTest() 
{
	CMenu* cm=GetMenu();
	if (cm->GetMenuState(ID_HELP_TEST,MF_BYCOMMAND) & MF_CHECKED)
		cm->CheckMenuItem(ID_HELP_TEST,MF_UNCHECKED); 
	else
		cm->CheckMenuItem(ID_HELP_TEST,MF_CHECKED);
}

Итак, есть функция у класса CWnd, который является дальним, но прямым родственником нашего класса, и который наложил существенный отпечаток на наш класс. Эта функция GetMenu

CMenu* GetMenu( ) const;

Она возвращает указатель на меню приложения. Вообще-то она может быть и NULL, но я то знаю что меню у меня есть вроде, поэтому проверять не стал, а наверно стоит :-). А дальше я пользуюсь функцией GetMenuState уже класса CMenu дабы убедиться, что меню на основе идентификатора ID_HELP_TEST с галочкой MF_CHECKED и меняю ситуацию на обратную используя функцию, которая умеет это делать CheckMenuItem. Во как.


Загрузить проект | | |
Автор Каев Артем.
[AD]