C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать

 85 - Значение возвращаемое диалогом / Диалоговые окна / Visual C++

Шаг 85 - Значение возвращаемое диалогом

Мы с Вами все время концентрировались на обработке внутри диалога. Но можно узнать какая кнопка была нажата, если проанализировать возврат функции DoModal(), вот так например.

void CTTT1Dlg::OnButton1() 
{
	CMyDIALOG cm;
	int i=cm.DoModal(); 
	if (i==IDOK)
	{
		AfxMessageBox("OK");
	}
}

Соответственно стает задача, можно ли сделать свою кнопку, которая будет закрывать диалог и возвращать какое-то другое значение. Давайте попробуем. Делаем кнопку Next. Самый простой способ вызвать функцию EndDialog() и передать в нее идентификатор кнопки.

void CMyDIALOG::OnButtonNext() 
{
	EndDialog(IDC_BUTTON_NEXT);
}

И в вызывающем коде можно анализировать это значение.

CMyDIALOG cm;
int i=cm.DoModal(); 
if (i==IDC_BUTTON_NEXT)
{
	AfxMessageBox("Next");
}

Функция EndDialog является аналогом перегруженной функции Win32 API с тем же именем.

::EndDialog(m_hWnd, nResult);

В ней предусмотрен код возврата.


| |
Автор Каев Артем.
[AD]