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 руб./мес


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




 Дополнения к 43 шагу. / Комментарии к статьям / Разное

Дополнения к 43 шагу.

Хотелось бы немного дополнить Ваш шаг 43.

На данном этапе Вы показали как можно добавить свой пункт в системное меню, но без указания как подключить к этому пункту меню свой код.

Ниже я привел некоторые дополнения, чтобы при выборе добавленного пункта выполнялся наш код (в моем случае просто выдается сообщение).

Сначала добавим в класс CTestDlg функцию OnSysCommand. Эта функция берет свое начало в классе CWnd. Параметр nID - идентификатор выбранного пункта меню.

class CTestDlg : public CDialog
{
 public:
        . . .
        void OnSysCommand(UINT nID, LPARAM lParam);
        . . .
}
Затем дополняем "карту сообщений" событием ON_WM_SYSCOMMAND()
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
        . . .
        ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()
И последнее, что осталось описать - собственно наш код для данного события, который выполняется при условии, что мы выбрали именно добавленный пункт меню.
void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
        if (nID == IDM_MYMENU)
        {
         AfxMessageBox("You clicked MyMenu !");
        }
        else
        {
                CDialog::OnSysCommand(nID, lParam);
        }
}
В итоге все получается достаточно просто и даже работает (во всяком случае у меня).

Прислал Valeri Khromov.


Автор : Каев Артем.