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++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 305 - Создаем немодальный диалог / MFC шаг за шагом / Visual C++

Шаг 305 - Создаем немодальный диалог

Немодальный диалог создается функцией Create(). Создаем тестовое приложение, как SDI и именем TestDlgs. Создаем пункт меню в View с именем Dialog и идентификатором ID_DIALOG. К этому пункту меню привязываем команду.

/////////////////////////////////////////
// CTestDlgsView message handlers

void CTestDlgsView::OnDialog() 
{

}

Теперь нужно создать диалог в ресурсах. Просто добавляем и все. Идентификатор у меня IDD_DIALOG1. Для того, чтобы диалог существовал нужно, чтобы существовал его объект. Для этого мы с Вами опишем переменную класса диалога в виде.

class CTestDlgsView : public CView
{
protected: // create from serialization only
	CTestDlgsView();
	DECLARE_DYNCREATE(CTestDlgsView)

// Attributes
public:
	CTestDlgsDoc* GetDocument();
	CDialog dlg;
// Operations
......
}

Создаем диалоговую панель при инициализации:

void CTestDlgsView::OnInitialUpdate() 
{
	CView::OnInitialUpdate();
	dlg.Create(IDD_DIALOG1,this);	
}

Ну, и реализацию функции для показа и скрытия:

void CTestDlgsView::OnDialog() 
{
	if (dlg.IsWindowVisible())
		dlg.ShowWindow(SW_HIDE);
	else
		dlg.ShowWindow(SW_SHOW);	
}

Посмотрим, как это работает. Диалог будет на экране и при этом не будет мешать работать с программой.

305.gif (3134 b)

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


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