![]() |
|
Модераторы: bsa |
![]()
|
|
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Пишу первое GUI-приложение в MS VS 2005. До этого писал писал в Билдере. Также есть книга по Visual C++ 6.
При создании проекта я выбрал не MFC, а Win32-приложение, хотя в книге вроде описано всё про MFC. Добавил в меню новый пункт, теперь хочу создать обработчик для его нажатия. Вообще не нахожу где это. В книге это делалось при помощи Class Wizard. Насколько я понял, в VS 2005 этот инструмент не сохранился. Единственное, что я смог - найти идетификатор новой кнопки там, где Macros and Consatnts. Если туда щёлкнуть, то открывается определение этого идентификатора в Resource.h. Куда нажать, чтобы создать обработчик? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
написать обработчик сообщения в win main
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Так делается именно для Win32-приложения? В MFC будет Class Wizard? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 27 Всего: 154 |
В MFC есть визарды, но я его не использовал, для win32 приложений визардов нет (насколько я знаю)
|
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
простенький пример GUI для Win32 Console Application при помощи файла ресурсов (диалоговое окошко набросал в той же студии (только 2003 - но не важно)
в кратце в case WM_COMMAND: - тут обрабатываем команды от контролов (кнопок и т.д.) switch(LOWORD(wParam)) (а тут идентифицируем от какого контрола пришло сообщение (кнопку нажали или там в поле ввода чё ввели) надеюсь я правильно понял вопрос и совет поможет, удачи ... -------------------- Дорогу осилит идущий |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Спасибо.
Но Win32-приложение я уже попробовал. Кое-чего получилось. Сейчас пробую MFC. И опять тот же вопрос! Как создать обработчик какого-нибудь события? Хочу сделать для начала такую прогу. Юзер водит мышью над окном, а в верхнем левом углу выводятся координаты курсора мыши. Поэтому надо сделать обработчик события WM_MOUSEMOVE, если не ошибаюсь. Окно Class View содержит уже больше, чем Win32 приложение. Нашёл там как добавить функцию. Добавил функцию OnMouseMove:
Всё компилится, но функция к событию никак не привязана, поэтому не вызввается. Как же всё-таки обработать событие? Это сообщение отредактировал(а) ksili - 19.10.2008, 16:23 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
В MSDN'е нашёл следующее:
А как кликнуть в этот контрол, если он нигде не отображается? В Билдере можно бкз проблем посмотреть спроектированную форму со всеми компонентами, а тут кажись нету... -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
В class view нашёл, что можно отобразить скрытые свойства и методы класса и там нашёл, что всевозможные события уже объявлены. То, что нужно мне, там с таким прототипом:
теперь буду думать, как её определить... -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| eyeofhell |
|
|||
|
Адепт ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 16.10.2008 Где: Россия, Москва Репутация: 1 Всего: 1 |
Два раза кликyи по любой кнопке в редакторе. Появится class wizard. Для верхнего меню - правый клик, add handler. |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Нету такого. Что такое "любая кнопка в редакторе"? У меня в редакторе текст программы -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| eyeofhell |
|
|||
|
Адепт ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 16.10.2008 Где: Россия, Москва Репутация: 1 Всего: 1 |
Редактор GUID. 'Add resource' -> 'Dialog' - Открывается редактор пользовательского интерфейса. Там двойной клик на любую кнопку нарисованного окна программы - откроется MFC Wizard.
В Express ( бесплатных ) версиях VS этого редактора нет. |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
eyeofhell, спасибо. теперь становится понятно - пока в проекте нет какого-нибудь наследника от диалога, то и события ниоткуда возникнуть не могут. Я так понимаю. чаще так и поступают - создают приложение на основе диалога, а не SDI или MDI.
Однакл я нашел, где добавляются обработчики в SDI-приложении. Открываем юнит вида (...View.cpp). Находим там место, где маппируются события, между BEGIN_MESSAGE_MAP и END_MESSAGE_MAP.
Щелкаем туда курсор и в окне Properties появляются дополнительные значки, и среди них Messages и Events! Через Messages их (обработчики) и можно добавлять. Если щёлкнуть в другое место юнита - эти значки исчезают! Спрашивается - нах? Место что ли сэкономили? Какая гадость эта ваша заливная рыба... -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| eyeofhell |
|
|||
|
Адепт ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 16.10.2008 Где: Россия, Москва Репутация: 1 Всего: 1 |
SDI и MDI как технология умерла много лет назад. В современных вижуалках почти не поддерживается на уровне визардов.
Профессиональный инструмент, что ж поделаешь. Для обучения и тренировки - бесполезная гадость. Но если точно знать что делаешь - то тупо быстрее разработка идет |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |