Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Общие вопросы .NET
Регистрация

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

Ответ
 
Опции темы
Старый 04.03.2008, 14:58   #1
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Адрес: Киев, Украиниа
Сообщений: 47
Репутация: 10

icq: 393431984
По умолчанию Вопрос:: Visual C++:: Doubleclicked

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

Цитата:
Сообщение от 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, 16:01   #3
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Адрес: Киев, Украиниа
Сообщений: 47
Репутация: 10

icq: 393431984
По умолчанию

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

как говорит 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. "
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Старый 04.03.2008, 16:34   #5
B_N
Новичок
 
Регистрация: 18.01.2008
Сообщений: 1,720
Репутация: 590
По умолчанию

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

icq: 393431984
По умолчанию

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

если кнопочка в диалоге, то в редакторе последнего выделяешь ее и справа будет панель свойств кнопки. там ищешь свойство Notify. иначе при создании задаешь свойство BS_NOTIFY. Вроде как-то так
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Старый 05.03.2008, 17:51   #8
Ceprey
Пользователь
 
Регистрация: 01.03.2008
Адрес: Киев, Украиниа
Сообщений: 47
Репутация: 10

icq: 393431984
По умолчанию

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

ну так это все в файле ресурсов храница, а не в коде
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по 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 16:14


08:42.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru