IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> New Application, MFC
сообщение
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Все, сдаюсь. smile.gif
Как с помощью MFC VC++ (2005) cделать аналогично дельфийскому File->New->Application?
Что-то связанное с CDialog.
Но вот это - какой-то обрубок smile.gif
#include "afxwin.h"
#include "resource.h" // ссылка на ресурсы
class CTestDlg : public CDialog // класс диалогового окна
{
public:
CTestDlg(CWnd* pParent=NULL);
protected:
};
CTestDlg::CTestDlg(CWnd* pParent)
: CDialog(IDD_DIALOG1, pParent)
{
}
class CTestApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
BOOL CTestApp::InitInstance()
{
CTestDlg dlg; // Создать объект диалогового окна
m_pMainWnd = &dlg; // главное окно программы это диалоговое окно
dlg.DoModal();
return FALSE;
}
CTestApp theApp;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 килобайт ) Кол-во скачиваний: 297
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Оно.
Цитата
А ты сам чтоли это ваяеш?
Было бы что прочитать, т. к. то, что находится - это литература для VC 6.0
А что насчет Events?
Кинул на пустой диалог компонент, а у него событий раз, два и обчелся.
Не хочется вручную MESSAGE_MAP и собственные классы создавать smile.gif Должно же быть что-нибудь человеческое для статических компонентов.
Прикрепленное изображение

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ну там у каждого компонента свой набор ивентов,например для кнопки,список аналогичен твоему,зато я вот взял и кинул лист контрол и увидел другую картину.На картинке по скролу видно сколько там ивентов)
Цитата
Не хочется вручную MESSAGE_MAP и собственные классы создавать Должно же быть что-нибудь человеческое для статических компонентов

А оно уже созданно,тебе просто надо будет туда добавить обработчик твоего события,плюс вот скажи чесно,а что с листбоксом еще можно сделать кроме этих событий?Ведь если подумать почти любое действие можно привязать к ним.

Сообщение отредактировано: Krjuger -


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Допустим кнопка. В Borland'овских продуктах.Прикрепленное изображение
И это после перехода на mfc я должен отказаться от такого разнообразия? Вряд ли.

Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ну класно,к несчастью я не знаю что половина из этого делает,но мне кажется,что по функцианальности можно заменить,ну да ладно пойдем другим путем.Что сложного стоит добавить в Мап новую функцию в которой будет все,что твоей дужше угодно?
В хедере ....Dlg.h добавляеш какую нибудь функцию
 public:
afx_msg void OnBnClickedCancel();

Затем в самом ....Dlg.cpp описываеш эту функцию и добавляеш в твою мапу там же.Но если чесно я не сталкивался с моментами,когда было что то необходимо,и небыло возможности решить это заложенными средствами.возможно проектов сложных пока не было.
Кстати зайди в раздел Properties,там достаточно много настроек при помощи которых можно решить некоторые проблемы с ивентами.

P.S.Чет отличаются KeyDown от KeyUp я представляю,первое обработка, когда отпускаеш клавишу,второе когда нажимаеш,ну а KeyPress Для чего тогда?Аналогичное с Mouse,зачем все это,у тебя есть нажата,даблклик,наведено на кнопку,убран курсор с кнопки,нажат хотей,ну и еще парочка.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
Чет отличаются KeyDown от KeyUp я представляю,первое обработка, когда отпускаеш клавишу,второе когда нажимаеш,ну а KeyPress Для чего тогда?
Разницу между WM_CHAR и WM_KEYDOWN знаешь? Вот такая же разница между KeyPress/KeyDown

sheka, я ж тебе присылал ссылку на youtube, пройди там по роликам того же автора, у него там много чего есть...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Ну или почитай тут , правда на английском.

P,S Насчет разници понял smile.gif

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Насколько я понимаю, Messages можно настраивать только для классов.
Как быть с экземплярами классов? Что собой представляет компонент, кинутый на диалог? (не нашел никакого его описания в коде, но он то существует! smile.gif )
Еще также прочитал, что диалог обрабатывает все сообщения, которые поступают к его компонентам. И как тогда, например, делать события для эдита при нажатии клавиш?
Уже вторые сутки читаю литературу(сначала про то, как создать DialogBased App - не заметил чекбокс, а теперь про события) и нифига раскурить не могу. Что делать то? mega_chok.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Не мог бы ты немного пояснить суть вопроса?
Цитата
Что собой представляет компонент, кинутый на диалог?

Набор функций вызываемых при обрабатывании какого либо действия вот смотри,у меня проект называется Lolka,Я добавляю кномку,что у меня происходить,в ресурсах выделяется для этой кнопки память.Я хочу чтобы при нажатии на кнопку вылетала птичка,что происходит?В LolkaDlg.h у нашего класса в разделе
public: появляется функция afx_msg void OnBnClickedButton1(); Затем уже в самом LolkaDlg.ccp в BEGIN_MESSAGE_MAP добавляется само событие ON_BN_CLICKED(IDC_BUTTON1, &CLolkaDlg::OnBnClickedButton1) Как нетрудно заметить первое это сам ресурс под нашу кнопочку,второе это ссылка на нашу функцию.То есть мы получили связь обьекта,обработку некоего события,и непосредственно то,что мы с этим будем делать,затем в этом же файле мы

void CLolkaDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
//Ресуем нашу птичку.
}


Цитата
И как тогда, например, делать события для эдита при нажатии клавиш

При нажатии клавиш где?Если просто в нашей программе то для базового окошка есть обработка события,если внутри самого эдита,то там при создании едита можно редактировать то,что туда можно записать.Или я что то не понял в вопросе.

А вообще прочти ту ссылку что я кинул все 5 статей,rое что должно проясниться.И попробуй нажать на обьект правой кнопкой и поковыряйся в Add event handler.

Вообще все MFC Это грамотное умение работы с Wizard.Он сам добавлает где нужно что нужно,в том числе и переменные и сам связывает то,за что они отвечают.Прочитай Creating your first Windows application там написано,как вообще добавить те ивенты,что тебе нужны с помощью визарда.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
Уже вторые сутки читаю литературу(сначала про то, как создать DialogBased App - не заметил чекбокс, а теперь про события) и нифига раскурить не могу. Что делать то?
Начать отсюда:
MFC шаг за шагом , а уж потом, если что непонятно - обращаться к литературе...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 6:37
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name