Заставка

Программирование на старых и современных языках, а так-же дизайн

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование на старых и современных языках, а так-же дизайн » Си/Си++ » Уроки по MFC C++, диалоговое окно


Уроки по MFC C++, диалоговое окно

Сообщений 1 страница 3 из 3

1

В колледже мы изучали MFC, но я уже давно не занимался MFC, буду показывать на Visual Studio 6.0, потом позже на более новый VS перейдём. Итак поехали!
1. Выберем проект MFC AppWizard (exe):
https://i.ibb.co/DVjFBhd/VS60-MFC-WIZ-1-10-32-06-07-2021-min.jpg

2. Выбереме Dialog Based, а язык English USA:
https://i.ibb.co/tpdd9X4/VS60-MFC-WIZ-2-10-32-06-07-2021-min.jpg

3. Всё кроме 3D Controls убераем, 3D Controls оставляем, заголовок окна пусть будет First MFC Application:
https://i.ibb.co/Ybwg50w/VS60-MFC-WIZ-3-10-33-06-07-2021-min.jpg

4. Тут ничего не меняем, пусть так остаётся:
https://i.ibb.co/WkTNQgc/VS60-MFC-WIZ-5-10-34-06-07-2021-min.jpg

5. Нарисуем такой интерфейс:
https://i.ibb.co/nmhP2kj/VS60-MFC-Layout-10-41-06-07-2021-min.jpg
У поле имя IDC_YOURNAME, у кнопки имя IDC_BTNSAY, а заголовок у кнопки SAY!

6. Нажмём правую кнопку появится меню выберем "ClassWizard", появится окно Class wizard:
https://i.ibb.co/2hhzBYf/VS60-MFCCLASSWIZARD-10-42-06-07-2021-min.jpg

7. К поле IDC_YOURNAME привяжем переменную, Member variable name пусть будет m_Yourname, category выберем Control, а Variable type:CEdit.
https://i.ibb.co/CH4tDvc/VS60-MFC-ADD-MEMBER-10-43-06-07-2021-min.jpg

8. К кнопке IDC_BTNSAY привяжем событие:
https://i.ibb.co/cNMptwn/VS60-MFC-BTNEVENT-NEW-10-44-06-07-2021-min.jpg

9. Теперь справа где MFC Classes, кликним на OnBtnSay(), Visual Studio перебросит на метод CMFC1Dlg::OnBtnsay():
https://i.ibb.co/kmG3jVs/VS60-MFC-ADD-CODE-TO-BTNCLK-10-46-06-07-2021-min.jpg

10. Теперь добавим простой код:
Вот простой код:

Код:
void CMFC1Dlg::OnBtnsay() 
{
	CString str1; // Для текста из поле m_Yourname
	CString str2; // Для форматированной строки
	m_Yourname.GetWindowText(str1); // Считываем значение из поле m_Yourname, и записываем в переменную str1
	str2.Format("Hello \"%s\"!", str1); // Форматированная строка
	AfxMessageBox(str2); // Вывод форматированной строки
}

11. Результат:
https://i.ibb.co/rGKT33b/MFCRESULT-10-53-06-07-2021-min.jpg

0

2

Теперь давайте улучшим наш код...

Код:
void CMFC1Dlg::OnBtnsay() 
{
	CString str1; // Для текста из поле m_Yourname
	CString str2; // Для форматированной строки
        // Проверяем если имя в поле больше или равно 2 символовам (допустим у азиатов короткие имена), то отображаем имя
	if(m_Yourname.GetWindowTextLength() >= 2) {
            m_Yourname.GetWindowText(str1); // Считываем значение из поле m_Yourname, и записываем в переменную str1
            str2.Format("Hello \"%s\"!", str1); // Форматированная строка
            AfxMessageBox(str2); // Вывод форматированной строки
	}
	else
    AfxMessageBox("Please enter your name!");  // Иначе выдаёт сообщение Please enter your name!
}

0

3

Давайте ещё улучшем наш код, константы поместим в ресурсы.
1. Добавим в ресурсы новый элемент:
https://i.ibb.co/qp2dK67/VS60-MFC-INSERT-11-34-06-07-2021-min.jpg

2. Выберем String Table:
https://i.ibb.co/GJr0Rkf/VS60-MFC-ADD-STRING-TABLE-11-30-06-07-2021-min.jpg

3. Добавим в строку Please enter your name!:
https://i.ibb.co/4ThgJ86/VS60-MFC-NEW-STRING-11-31-06-07-2021-min.jpg

4. Скопируем IDS_STRING1.
5. Поменяем код с:

Код:
AfxMessageBox("Please enter your name!");  // Иначе выдаёт сообщение Please enter your name!

на:

Код:
AfxMessageBox(IDS_STRING1);

0


Вы здесь » Программирование на старых и современных языках, а так-же дизайн » Си/Си++ » Уроки по MFC C++, диалоговое окно