какое сообщение было отправлено после щелчка левой кнопкой мыши по контекстному меню значка в трее? (Windows API)

у меня есть программа, написанная с использованием DialogBox для инициализации главного окна.

int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow )
{
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN),hWnd, (DLGPROC)**DlgProc**);
    return 0;
}

и в DlgProc

LRESULT CALLBACK DlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    switch (LOWORD(Msg))
    {
        //some code............
        case WM_CLOSE:
            nid.uCallbackMessage=WM_MY_NOTIFY;//自定义的消息名称
        //some code.........
        case WM_MY_NOTIFY:
            //some code here.......
            return TRUE;
        case WM_COMMAND:
            //Cannot receive the tray context menu left click message
            switch (LOWORD (wParam))
            {
            case IDM_TRAY_EXIT:
                SendMessage(hWndDlg,WM_CLOSE,0,0); 
                return TRUE;
            }
            return TRUE;
    }
    return FALSE;
}

Нажмите на эти меню, ничего не произойдет.

я хотел щелкнуть элемент меню и вызвать что-то, как показано на изображении выше, после того, как я нажал элемент 1, выскочило окно сообщения.

Итак, мой вопрос: какое сообщение может получить контекстное меню значка левой кнопки мыши в трее?


person tunpishuang    schedule 13.07.2011    source источник


Ответы (1)


Сообщение должно быть в обратном вызове контекстного меню, показанного

person Djole    schedule 13.07.2011
comment
@ss-kain, ты имеешь в виду, что я поставил WM_COMMAND в WM_MY_NOTIFY? Я пробовал это раньше. я могу получить только WM_RBUTTONUP и WM_RBUTTONDOWN - person tunpishuang; 13.07.2011
comment
Не помещайте WM_COMMAND в WM_MY_NOTIFY. Проверьте это: msdn.microsoft.com/en- us/library/ms646977%28VS.85%29.aspx и msdn.microsoft.com/en-us/library/ - person Djole; 14.07.2011