www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  http://tikitak.narod.ru ---- Главная страница сайта

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

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

Для работы с диалоговыми окнами в MFC нужно -

Ресурс диалогового окна.
Класс окна.
Ресурс диалогового окна используется для вывода окна на экран самого окна и элементов управления, которые входят в него.

Класс диалогового окна необходим для программной реализации управления окном и его элементами.

Ресурсы диалогового окна создаются редактором ресурсов. Класс окна создает ClassWizard на основе ресурсов диалогового окна. Обычно все эти классы это дети от класса CDialog. Каждый элемент управления обычно имеет переменную в классе диалогового окна.

При генерации приложения AppWizard'ом у Вас автоматически генерируется окно о программе.

step77_1.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. В ответ вам предложат создать новый класс или выбрать существующий.

step77_2.gif (2634 b)

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


Предыдущий Шаг | Следующий Шаг | Оглавление

By Artem.
Используются технологии uCoz
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz