Основные принципы платформы .NET

Немодальная диалоговая панель.

Используются для определения различных интсрументальных средств, предназначенных для работы с объектом в главном окне приложения.

 

  1. Создание и уничтожение диалоговых панелей.

Для создания используется функция CreateDialog(). Стиль панели, описанный в шаблоне не должен включать стиль DS_MODULEFRAME. Завершение работы немодальной панели выполняется с помощью функции DestroyWindow(). В качестве параметра передается идентификатор окна, полученной от функции CreateDialog().

  1. Изменения в цикле обработки сообщения.

При создании модальной панели приложение создается второй цикл обработки сообщений. Он действует до завершения работы модальной панели. При создании немодальной панелисообщения от органов управления предназначенных для панели проходит через общую очередь сообщений приложения. Для разделения этих сообщений цикл обработки сообщений

BOOL WINAPI IsDialogMessage(HWND hwnd, MSG FAR* lpmsg);

Эта функция определяет предназанчена ли сообщение немодальной панели. Если да, то функция сама выполняет обработку сообщеняия и возвращает значение TRUE, в противном случае FASLE. Например приложение, которое при нажатии кнопки в главном окне выводит немодальную панель, которая содержит надпись и кнопку OK

#define ID_BUTTON 1

HWND hwndDlg:

…...

WinMain

…..

HWND hButton = CreateWindow(«button», «about», WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 20, 20, 30, 30, hwndMain,(HMENU)ID_BUTTON, hInst, NULL);

if(!hButton)

return FALSE

hwndDlg = (HWND) 0;

while(GetMessage(&msg, 0, 0, 0))

if(hwndDlg ==0 || !IsDialogMessage(hwndDlg, &msg))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

WndProc

….

case WM_COMMAND:

{

if(wParam == ID_BUTTON)

hwndDlg = CreateDialog(hinst, «DIALOG_OK», hwnd, (DLGPROC) DlgProc);

return 0

}

….

DlgProc(....)

case WM_COMMAND:

{

switch(wParam)

{

case ID_OK:

case ID_CANCEL:

{

DestroyWindow(hdlg);

DestroyWindow(hwndMain)

return TRUE;

}

}

return FALSE;

}

}

Лекция №9 (03.11.10)

Платформа .NET представляет собой единую среду исполнения и разработки программ. Ключевыми задачами при построении платформы .NET являлись:

1) Поддержка разработки распределенных корпоративных приложений на основе Web-сервисов;

2) Повышение эффективности управления ресурсами и повышения безопасности. Платформа предоставляет автоматическое управление ресурсами. Она управляет ссылками на объекты приложения и освобождает ссылки, когда потребность в них отпадает. Автоматическое управление памятью в .NET реализовано при помощи сборщика мусора — Garbage Collector;

3) Модификация библиотек функций для всех приложений, не зависимо от используемого языка программирования. Платформа .NET на единой объектно-ориентированной модели. Все сервисы предоставляемые программисту реализованы в виде единой иерархии классов. Модель существенно упрощает разработку приложений. По сравнению с программированием на WinApi32, где вся функциональность предоставляется разработчику как неструктурированный набор функций. Проблема создания объектно-ориентированной надстройки над функциями WinApi решалась независимо в различных языках программирования. Раньше каждый язык содержал свою библиотеку классов, например в VisualС библиотека называлась MFC. Более легкая библиотека от BorlandVCL. Все эти библиотеки представляли наборы статических объектных модулей. Они подключаются к приложению на этапе компоновки исполняемого модуля и становятся его неотъемлемой частью. Библиотека классов .NET — это динамическая библиотека классов, которая является составной частью самой операционной системы и используется приложениями только в момент выполнения. Несмотря на то, что все языки используют одну и ту-же библиотеку классов они обладают различными возможностями. C++ позиционируется как инструмент создания системных средств, а также разработки эффективных серверных приложений. В наибольшeй степени возможности среды доступны программистам на C#. C# наряду с Basic используется для разработки клиентских и офисных приложений, кроме того C# является скриптовым языком, его можно использовать вместо JavaScript, но только на платформе Windows.