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