Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Помогите разобраться новичку |
Автор: xTr1m 6.5.2005, 11:13 | ||||
Я недавно изучаю MFC, поэтому помогите пожалуйста. Например, есть такой код класса кнопки :
И есть класс рамки окна :
И в этой рамке мы создали объект MyButton типа CMyButton. Но ведь событие, которое здесь описано для кнопки , будет одно и тоже для каждой кнопки типа CMyButton. Так что же это получается, если у меня будет 20 кнопок, то мне придется создавать 20 классов (порожденных от CButton) и для каждого такого клааса определять событие Click? ![]() Или я что-то не понимаю. Спасибо. |
Автор: Step 6.5.2005, 11:44 | ||||
ваш клас в функцию онлбаттонап вставляете код отправки сообщения в фрейм и параметром отправляете nID, не знаете как его узнать, перегрузити Create и сохраните во внутренней переменной класса во фрейме вы сможете по параметру сообщения какая кнопка кликнута Добавлено @ 11:52 вроде так
WM_MY_CLICK этот символ нужно указать определить, можно конечно отфонарно число вписать, но это когданибудь может дать ошибку.... так как отфонарное число это не идентификатор а во фрейме обрабатываете ОнКомманд проверяете левый на равенство WM_MY_CLICK, а в правом ид кнопки |
Автор: Coocky 6.5.2005, 11:59 | ||
xTr1m есть такое сообщение ON_COMMAND_RANGE(nID,nID2,Func); где nID-номер ID первого элемента,nID2-номер ID последнего,Функция обработки. те.есть набор кнопок с ID от 2000 до 2015 для всех них будет візіваться функция(обработчик Func); Добавлено @ 12:04 Ну вот еще и код дам ![]()
|
Автор: xTr1m 6.5.2005, 12:50 |
Coocky, я, наверное, не так объяснил. Мне хотелось бы узнать не как объединить одинаковые события для разных кнопок, а наоборот, как в принципе определить разные события для разных кнопок одного класса (например для кнопока типа CMyButton, порожденного от базового CButton) Но все равно спасибо за твою инфу, этого я тоже не знал. |
Автор: Coocky 6.5.2005, 12:54 | ||
xTr1m
Перевожу: как обьединить разные события для одной кнопки? |
Автор: xTr1m 6.5.2005, 15:46 | ||||
Ну, например, есть класс кнопки :
И есть фрейм с двумя кнопками MyFirstButton и MySecondButton :
И как мне сделать, чтобы событие Click для этих 2 кнопок делало разные операции. Просто везде в примерах (электронные учебники) описан вариант только с одной кнопкой, а я хочу понять принцип, со многими элемнетами. Ну, скажем, клик для первой выводил сообщение "Нажата 1ая кнопка", а клик на второй ЭНажата 2ая кнопка". Если можно, то приведите примерный код плз. Спасибо заранее. |
Автор: Coocky 7.5.2005, 14:39 | ||
Дык мог бы воспользоваться моим примером.Ведь у каждой кнопки свой ID ![]() Еще раз мой пример
|
Автор: xTr1m 9.5.2005, 22:10 |
Спасибо. Что-то я сразу не догадался =(( Ну тогда последний вопрос : как определить, что функция OnMyButton будет считаться за событие Click? |
Автор: Coocky 10.5.2005, 20:28 |
xTr1m Не понял? А что на клик не реагирует? |
Автор: xTr1m 10.5.2005, 23:20 |
ой, извини я что-то сначала подумал, что это просто ты так на обум название функции написал. А вообще так можно про любые события писать или только про конкретные? И можно ли эту инфу найти в хелпе VC? |
Автор: Coocky 10.5.2005, 23:25 | ||||
только про COMMAND,насколько я знаю..
Ну набери в МСДН WM_ или ON_ и ищи все,что связано с RANGE |