Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2008, 13:58   #1
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 47
По умолчанию Вопрос:: Visual C++:: Doubleclicked

Привет всем! Осваиваю MFC в C++Visual Studio 2005. Проблема на самом раннем этапе: не срабатывает функция по событию "двойной щелчок".
Вот фрагмент кода:
void CMy555Dlg::OnDoubleclickedButton1()
{
MessageBox ("IIIII")
}
То же самое с одним щелчком работает. Событие также менял в диалоговом окне ClassWizard. Что-то я сделал не так?
Спасибо.
Ceprey вне форума Ответить с цитированием
Старый 04.03.2008, 14:35   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от Ceprey Посмотреть сообщение
Привет всем! Осваиваю MFC в C++Visual Studio 2005. Проблема на самом раннем этапе: не срабатывает функция по событию "двойной щелчок".
Вот фрагмент кода:
void CMy555Dlg::OnDoubleclickedButton1()
{
MessageBox ("IIIII")
}
То же самое с одним щелчком работает. Событие также менял в диалоговом окне ClassWizard. Что-то я сделал не так?
Спасибо.
Убедитесь, что класс окна имеет стиль CS_DBLCLKS
В MFC "самодельные" классы обычно регистрируются в PreCreateWindow примерно таким образом:
Код:
BOOL CMyWnd::PreCreateWindow(CREATESTRUCT& cs) 
{
	// TODO: Add your specialized code here and/or call the base class

	cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS|CS_OWNDC|CS_SAVEBITS, 
		::LoadCursor(NULL, IDC_ARROW), ::CreateSolidBrush(RGB(100,200,100)), ::LoadIcon(NULL,IDI_WARNING));
	
	return CWnd::PreCreateWindow(cs);
}
B_N вне форума Ответить с цитированием
Старый 04.03.2008, 15:01   #3
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 47
По умолчанию

Большое спасибо, но не смог найти ни в одном файле подобный класс. В каком файле он должен быть? Под "самодельный" классом имеется в виду тот, что в среде создается автоматически по умолчанию?
Ceprey вне форума Ответить с цитированием
Старый 04.03.2008, 15:28   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

как говорит MSDN: "Other button types send BN_DBLCLK only if they have the BS_NOTIFY style."
т.е. у кнопки выставляем свойство Notify = true и наслаждаемся
и не забываем, что "BS_NOTIFY Enables a button to send BN_DBLCLK, BN_KILLFOCUS, and BN_SETFOCUS notification messages to its parent window. Note that buttons send the BN_CLICKED notification message regardless of whether it has this style. "
pu4koff вне форума Ответить с цитированием
Старый 04.03.2008, 15:34   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Фу ты, ёлки... Ceprey, извиняюсь, думал про одно, написал другое. Конечно, там же про кнопку речь. pu4koff совершенно прав, просто Notify нужно включить...
B_N вне форума Ответить с цитированием
Старый 05.03.2008, 16:10   #6
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 47
По умолчанию

Спасибо, Pu4koff, B_N! И все-таки я еще не успокоился. Я пробовал прописать это свойство, но то ли не там пишу, то ли не тот синтаксис. Я весь вечер искал в инете пример, не нашел. Я понял, что в строчке, которая прописывается в файле ***dlg.h:
afx_msg void OnDoubleclickedButton1();
надо как-то прописать этот Notify. Но как? Вообще, я думал, что в Visual Studio такие вещи максимально наглядны, и если в диалоговом окне Wizarrd´a я выбираю Doubleclicked, то оно само пропишет свойства, какие нужно. Или я не так понимаю Visual Studio вообще концептуально?
Ceprey вне форума Ответить с цитированием
Старый 05.03.2008, 16:31   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

если кнопочка в диалоге, то в редакторе последнего выделяешь ее и справа будет панель свойств кнопки. там ищешь свойство Notify. иначе при создании задаешь свойство BS_NOTIFY. Вроде как-то так
pu4koff вне форума Ответить с цитированием
Старый 05.03.2008, 16:51   #8
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 47
По умолчанию

Спасибо, сработало! Кстати, проверял, как оно отобразилось в самом коде. Вроде никак.
Ceprey вне форума Ответить с цитированием
Старый 05.03.2008, 17:30   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

ну так это все в файле ресурсов храница, а не в коде
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по Microsoft Visual C++ DiZZZ Visual C++ 3 06.04.2009 18:45
вопрос о <Visual Studio 2008> Hayk Visual C++ 1 10.08.2008 22:45
Вопрос по Visual Basic Иллидан Помощь студентам 3 20.04.2008 13:08
У меня вопрос простой помогите мне найти книги поMicrosoft Visual Studio 2005 LuMax Помощь студентам 1 11.12.2007 15:14