обработчик нажатия кнопки

Тема в разделе "MS Visual C++", создана пользователем Dmitriy.Ch, 4 июл 2009.

  1. Dmitriy.Ch

    Dmitriy.Ch Гость

    Подскажите, пожалуйста.
    Есть один обработчик нажатий для нескольких кнопок.
    Как в этом обработчике определить какая из кнопок была нажата?
     
  2. alexsid

    alexsid Гость

    в обработчик обычно отправляют идентификатор объекта вызвавшего этот самый обработчик
    тока это, видимо, не случай с MFC ;)
    Решение - сделать обработчик для каждой кнопки и транслировать в старый метод
     
  3. shadowgard

    shadowgard Гость

    Use this macro to map a contiguous range of command IDs to a single message handler function.


    ON_COMMAND_RANGE(id1, id2, memberFxn )



    Parameters
    id1
    Command ID at the beginning of a contiguous range of command IDs.

    id2
    Command ID at the end of a contiguous range of command IDs.

    memberFxn
    The name of the message-handler function to which the commands are mapped.

    Example
    Copy Code
    // The code fragment below shows how to use ON_COMMAND_RANGE macro
    // to map a contiguous range of command IDs to a single message
    // handler function (i.e. OnFileMenuItems() is the sample below). In
    // addition, it also shows how to use CheckMenuRadioItem() to check a
    // selected menu item and makes it a radio item.
    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    // ...
    ON_COMMAND_RANGE(ID_FILE_MENUITEM1, ID_FILE_MENUITEM3, OnFileMenuItems)
    END_MESSAGE_MAP()

    void CMainFrame::OnFileMenuItems(UINT nID)
    {
    CMenu* mmenu = GetMenu();
    CMenu* submenu = mmenu->GetSubMenu(0);
    submenu->CheckMenuRadioItem(ID_FILE_MENUITEM1, ID_FILE_MENUITEM3,
    nID, MF_BYCOMMAND);
    }
     
Загрузка...

Поделиться этой страницей