Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > ON_COMMAND


Автор: xTr1m 17.5.2005, 18:00
собыите ON_COMMAND. Можно ли сказать, что это событие по умолчанию для каждого элемента управления. Ну т.е. для кнопки это клик, например?

Автор: Coocky 17.5.2005, 18:04
Примерно..
Сформулируй лучше вопрос или спроси ,что именно о сообщениях ты хочешь узнать..

Автор: xTr1m 17.5.2005, 18:09
Ну т.е. с помощью ON_COMMAND я могу только собыите клик для кнопки сделать?
А если я хочу дбл клик? Придется пользоваться стандартным OnLDblClick()?
А есть ли другие способы?

Автор: Coocky 17.5.2005, 18:14
Цитата
А есть ли другие способы?

Не понял,ты что хочешь изменить имя функции? Или другим сообщением нажатие вызвать smile ?

Автор: xTr1m 17.5.2005, 18:18
smile да нет. Я бы хотел,например, назвать собыите дбл клик MyDblClick и потом вызывать его для разных кнопок

Автор: Coocky 17.5.2005, 18:31
Да когда в Визарде добавляешь сообщение,там можно изменить,внизу,имя функции.
Можно и руцями,только не забудь,что везде smile

Автор: Dov 17.5.2005, 19:13
xTr1m, действительно тяжело понять, что, именно, ты хочешь сделать.
Ты напиши, что у тебя есть и, что тебе нужно сделать.

Автор: xTr1m 17.5.2005, 20:46
Код

#define ID_FIRST_15BUTTON      WM_USER
#define ID_LAST_15BUTTON       ID_FIRST_15BUTTON+14

BEGIN_MESSAGE_MAP(CFifteensDlg, CDialog)


    ON_COMMAND_RANGE(ID_FIRST_15BUTTON, ID_LAST_15BUTTON, OnMyButtons)

END_MESSAGE_MAP()

void CFifteensDlg::OnMyButtons(UINT id)
{
    if (id==1000)
 {
MessageBox("Я первая кнопка");

 }
 if (id==1001)
 {
MessageBox("Я вторая кнопка");
 }


}



Этот пример предоставил мне Coocky. Тут я во всем разобрался, а если я например захочу таким же образом устроить обработку для дбл клик разных кнопок? Как тут поступить? smile

Автор: kometa_triatlon 18.5.2005, 00:42
А почему нельзя для каждой кнопки создать свой обработчик двойного клика? Или их там пару тысяч? smile

Автор: gepard 18.5.2005, 06:41
Цитата(kometa_triatlon @ 18.5.2005, 00:42)
А почему нельзя для каждой кнопки создать свой обработчик двойного клика? Или их там пару тысяч?

Тема совсем недавно поднималась на этот вопрос! Поищите в этом же разделе!

Автор: Dov 18.5.2005, 21:42
Цитата(xTr1m @ 17.5.2005, 20:46)
а если я например захочу таким же образом устроить обработку для дбл клик разных кнопок?

Теперь понятно.
Вместо
Код
ON_COMMAND_RANGE(ID_FIRST_15BUTTON, ID_LAST_15BUTTON, OnMyButtons)
пишешь
Код
ON_CONTROL_RANGE(BN_DOUBLECLICKED, ID_FIRST_15BUTTON, ID_LAST_15BUTTON, OnMyButtons)

Автор: xTr1m 19.5.2005, 07:23
Ура!! Меня поняли smile Всем спасибо за время, потраченное на меня

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)