На данном этапе Вы показали как можно добавить свой пункт в системное меню, но без указания как подключить к этому пункту меню свой код.
Ниже я привел некоторые дополнения, чтобы при выборе добавленного пункта выполнялся наш код (в моем случае просто выдается сообщение).
Сначала добавим в класс 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.