MF C: что нужно для запуска действия меню, отправив сообщение? - PullRequest
2 голосов
/ 28 апреля 2020

У меня есть пункт меню, связанный с функцией.

BEGIN_MESSAGE_MAP(CMyDoc, CDocument)
    ON_COMMAND(ID_FILE_ACTION, &CMyDoc::OnFileAction)

Где-то в моем коде я пытаюсь запустить эту функцию, публикуя сообщение типа

AfxGetMainWnd()->PostMessage(WM_COMMAND, 0, ID_FILE_ACTION);

Но ничего не происходит.

1 Ответ

3 голосов
/ 28 апреля 2020

Идентификатор пункта меню для сообщения WM_COMMAND содержится в младшем слове из wParam, , а не в lParam! (И lParam должен быть равен нулю.) Итак, попробуйте это:

    AfxGetMainWnd()->PostMessage(WM_COMMAND, MAKEWPARAM(ID_FILE_ACTION, 0), 0);
...