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 исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать

 77 - О диалоговых окнах / MFC шаг за шагом / Visual C++

Шаг 77 - О диалоговых окнах

В понятии графического интерфейса GDI есть понятие диалогового окна (dialog box). Если дать простое определение, то это окно, которое не может изменять свои размеры и у которого нет меню. Каждое приложение может иметь огромное количество диалоговых окон или ни одного. Но всё же большинство приложений содержат хотя бы одно диалоговое окно About . Для работы с диалоговыми окнами в MFC нужно -

Ресурс диалогового окна.
Класс окна.

77_1.gif (6972 b)

Ресурс диалогового окна используется для вывода окна на экран самого окна и элементов управления, которые находиться на нем. Класс диалогового окна необходим для программной реализации управления окном и его элементами. Ресурсы диалогового окна создаются редактором ресурсов. Класс окна создает ClassWizard на основе ресурсов диалогового окна. Обычно все эти классы это дети от класса CDialog. Каждый элемент управления обычно имеет переменную в классе диалогового окна. При генерации приложения AppWizard'ом у Вас автоматически генерируется окно о программе.

77_2.gif (4317 b)

IDD_ABOUTBOX это идентификатор диалоговго окна. Он описан в файле resoure.h.

.....
// Microsoft Visual C++ generated include file.
// Used by EE.RC
//

#define IDD_ABOUTBOX 100
#define IDR_MAINFRAME 128
#define IDR_EETYPE 129
.....

В файле реализации класса приложения описан класс для этого окна и сразу за ним реализация.

class CAboutDlg : public CDialog
{
public:
CAboutDlg();
......
};

В последствии организуется вывод диалогового окна функцией DoModal. Надо отметить, что диалоговые окна бывают модальные и немодальные. Модальные диалоговые окна не дают работать с окном программы до их закрытия, немодальные на работу с программой не влияют, а просто висят и мешаются. У каждого окна своё предназначение.

// App command to run the dialog
void CEeApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}

Создается диалоговое окно в ресурсах. Нажимаете правую кнопку мыши. Выбираете Insert и Dialog. Для создания класса надо на диалоговом окне нажать правую кнопку мыши и выбрать пункт меню ClassWizard. В ответ вам предложат создать новый класс или выбрать существующий. Для подробнойстей смотрите "Шаг 69 - Диалоговое окно для поиска в CEditView".

77_3.gif (2634 b)

Создавая новый класс у Вас спросят имя. Задаете имя и нажимаете OK. В результате создастся класс. Его можно увидеть в ClassView. Создастся два файла заголовочный H и CPP.


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