New Application, MFC |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
New Application, MFC |
sheka |
14.08.2011 15:15
Сообщение
#1
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Все, сдаюсь.
Как с помощью MFC VC++ (2005) cделать аналогично дельфийскому File->New->Application? Что-то связанное с CDialog. Но вот это - какой-то обрубок #include "afxwin.h" |
Krjuger |
15.08.2011 12:49
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
А ты сам чтоли это ваяеш?Насчет 2005 сказать не могу,но в 2008 выбираеш MFC Aplication->Дальше окно Визарда,там первым выбираеш Dialog based->next->Main frame styles(Выбираеш,что душе угодно)->Advanced features(тоже выбираеш что надо)->Generated classes Вот тут тебе надо выбрать С....Dlg.Затем становится активным окно Base class Там 2 варианта либо CDialog либо CDHtmlDialog,выбираешь первое и жмеш финиш.В итоге у тебя генерируется вот такой вот проект(ну с теми настройками,что выставил).У тебя появляется Диалоговое окошко на которое ты перетаскиваеш контролы из тулбокса и работает с обработчиками событий.
Внизу пример пустого проекта с базовыми настройками. Прикрепленные файлы Lolka.rar ( 39.46 килобайт ) Кол-во скачиваний: 195 |
sheka |
15.08.2011 13:06
Сообщение
#3
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Оно.
Цитата А ты сам чтоли это ваяеш? Было бы что прочитать, т. к. то, что находится - это литература для VC 6.0А что насчет Events? Кинул на пустой диалог компонент, а у него событий раз, два и обчелся. Не хочется вручную MESSAGE_MAP и собственные классы создавать Должно же быть что-нибудь человеческое для статических компонентов. |
Krjuger |
15.08.2011 13:16
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Ну там у каждого компонента свой набор ивентов,например для кнопки,список аналогичен твоему,зато я вот взял и кинул лист контрол и увидел другую картину.На картинке по скролу видно сколько там ивентов)
Цитата Не хочется вручную MESSAGE_MAP и собственные классы создавать Должно же быть что-нибудь человеческое для статических компонентов А оно уже созданно,тебе просто надо будет туда добавить обработчик твоего события,плюс вот скажи чесно,а что с листбоксом еще можно сделать кроме этих событий?Ведь если подумать почти любое действие можно привязать к ним. Сообщение отредактировано: Krjuger - 15.08.2011 13:25 Эскизы прикрепленных изображений |
sheka |
15.08.2011 13:23
Сообщение
#5
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
|
Krjuger |
15.08.2011 13:39
Сообщение
#6
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Ну класно,к несчастью я не знаю что половина из этого делает,но мне кажется,что по функцианальности можно заменить,ну да ладно пойдем другим путем.Что сложного стоит добавить в Мап новую функцию в которой будет все,что твоей дужше угодно?
В хедере ....Dlg.h добавляеш какую нибудь функцию public: Затем в самом ....Dlg.cpp описываеш эту функцию и добавляеш в твою мапу там же.Но если чесно я не сталкивался с моментами,когда было что то необходимо,и небыло возможности решить это заложенными средствами.возможно проектов сложных пока не было. Кстати зайди в раздел Properties,там достаточно много настроек при помощи которых можно решить некоторые проблемы с ивентами. P.S.Чет отличаются KeyDown от KeyUp я представляю,первое обработка, когда отпускаеш клавишу,второе когда нажимаеш,ну а KeyPress Для чего тогда?Аналогичное с Mouse,зачем все это,у тебя есть нажата,даблклик,наведено на кнопку,убран курсор с кнопки,нажат хотей,ну и еще парочка. Сообщение отредактировано: Krjuger - 15.08.2011 13:47 |
IUnknown |
15.08.2011 13:54
Сообщение
#7
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата Чет отличаются KeyDown от KeyUp я представляю,первое обработка, когда отпускаеш клавишу,второе когда нажимаеш,ну а KeyPress Для чего тогда? Разницу между WM_CHAR и WM_KEYDOWN знаешь? Вот такая же разница между KeyPress/KeyDownsheka, я ж тебе присылал ссылку на youtube, пройди там по роликам того же автора, у него там много чего есть... |
Krjuger |
15.08.2011 14:03
Сообщение
#8
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Ну или почитай тут , правда на английском.
P,S Насчет разници понял Сообщение отредактировано: Krjuger - 15.08.2011 14:04 |
sheka |
15.08.2011 22:15
Сообщение
#9
|
Я. Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: 11 |
Насколько я понимаю, Messages можно настраивать только для классов.
Как быть с экземплярами классов? Что собой представляет компонент, кинутый на диалог? (не нашел никакого его описания в коде, но он то существует! ) Еще также прочитал, что диалог обрабатывает все сообщения, которые поступают к его компонентам. И как тогда, например, делать события для эдита при нажатии клавиш? Уже вторые сутки читаю литературу(сначала про то, как создать DialogBased App - не заметил чекбокс, а теперь про события) и нифига раскурить не могу. Что делать то? |
Krjuger |
15.08.2011 23:09
Сообщение
#10
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Не мог бы ты немного пояснить суть вопроса?
Цитата Что собой представляет компонент, кинутый на диалог? Набор функций вызываемых при обрабатывании какого либо действия вот смотри,у меня проект называется Lolka,Я добавляю кномку,что у меня происходить,в ресурсах выделяется для этой кнопки память.Я хочу чтобы при нажатии на кнопку вылетала птичка,что происходит?В LolkaDlg.h у нашего класса в разделе public: появляется функция afx_msg void OnBnClickedButton1(); Затем уже в самом LolkaDlg.ccp в BEGIN_MESSAGE_MAP добавляется само событие ON_BN_CLICKED(IDC_BUTTON1, &CLolkaDlg::OnBnClickedButton1) Как нетрудно заметить первое это сам ресурс под нашу кнопочку,второе это ссылка на нашу функцию.То есть мы получили связь обьекта,обработку некоего события,и непосредственно то,что мы с этим будем делать,затем в этом же файле мы
Цитата И как тогда, например, делать события для эдита при нажатии клавиш При нажатии клавиш где?Если просто в нашей программе то для базового окошка есть обработка события,если внутри самого эдита,то там при создании едита можно редактировать то,что туда можно записать.Или я что то не понял в вопросе. А вообще прочти ту ссылку что я кинул все 5 статей,rое что должно проясниться.И попробуй нажать на обьект правой кнопкой и поковыряйся в Add event handler. Вообще все MFC Это грамотное умение работы с Wizard.Он сам добавлает где нужно что нужно,в том числе и переменные и сам связывает то,за что они отвечают.Прочитай Creating your first Windows application там написано,как вообще добавить те ивенты,что тебе нужны с помощью визарда. Сообщение отредактировано: Krjuger - 15.08.2011 23:15 |
IUnknown |
16.08.2011 12:15
Сообщение
#11
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата Уже вторые сутки читаю литературу(сначала про то, как создать DialogBased App - не заметил чекбокс, а теперь про события) и нифига раскурить не могу. Что делать то? Начать отсюда:MFC шаг за шагом , а уж потом, если что непонятно - обращаться к литературе... |
Текстовая версия | 27.04.2024 23:38 |