Меню
От: Аноним  
Дата: 24.08.05 09:40
Оценка:
Кто нибудь подскажите, как обработать выбор пункта меню, для конкретности File->Exit?? Без мфц на чистом API???
Re: Меню
От: Аноним  
Дата: 24.08.05 09:42
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>Кто нибудь подскажите, как обработать выбор пункта меню, для конкретности File->Exit?? Без мфц на чистом API???


PostQuitMessage()
Re: Меню
От: Аноним  
Дата: 24.08.05 09:58
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Кто нибудь подскажите, как обработать выбор пункта меню, для конкретности File->Exit?? Без мфц на чистом API???



void InsertMyMenu () {
    // включение в системное меню своего пункта
    HMENU sysMenu = GetSystemMenu(m_upd->m_hWnd, false);
    if (sysMenu != NULL) {
        TCHAR strMenu [100];
        LoadString (NULL, IDS_MENUSTR, strMenu, sizeof (strMenu)/sizeof (TCHAR));
        ::AppendMenu(sysMenu, MF_SEPARATOR, NULL, NULL);
        ::AppendMenu(sysMenu, MF_STRING, IDM_MYSYSMENU, strMenu);
    }
}


LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {

    switch (message) {

    ...

    case WM_COMMAND:
        {
            int wmId    = LOWORD(wParam); 
            int wmEvent = HIWORD(wParam); 

            switch (wmId) {

            case IDM_EXIT:
                {
                    ::MessageBox ("ExitClicked", ...);
                }
                break;

            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
        break;

    }


    case WM_SYSCOMMAND:
        {
            int wmId    = LOWORD(wParam); 
            int wmEvent = HIWORD(wParam); 

            switch (wmId) {

            case IDM_MYSYSMENU:
                {
                    ::MessageBox ("MySystemMenuClicked", ...);
                }
                break;

            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
        break;

    }

    return FALSE;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.