Предыдущая Следующая
TranslateMessage (&msg) ; DispatchMessage (&msg) ; }
}
// Step 9: Clean up when done. Delete the frame and // MDI manager objects and free the linked list of // child types._
delete enc_manager;
delete se 1 f__org_enc_manager;
delete dec_manager;
delete sub_manager;
delete plt2d_manager;
delete img_frame^window;
free__mdi_type__list_struct (child_list) ;
return msg.wParam / }
B.2.6. Диалоги UWL
Вдобавок к обеспечению основной функциональности окон MDI, UWL также предоставляет ряд диалогов для ввода данных пользователя. На Рис. В.2.2 показана иерархия классов для классов диалога в UWL. Класс tnum_input__diaiog собирает числовой ввод пользователя. Введенные данные редактируются, чтобы они были действительно числовыми, а также есть специальная опция для проверки вхождения данных в определенный диапазон max-min. На Рис. В. 1.2 показан пример диалога, порожденного классом tbooi_diaiog, который требует от пользователя ответа yes/no (да/нет) на заданный вопрос. Класс tabout_diaiog является базовым классом для диалогов приложения About (О программе).
Диалоги с прокручивающимися списками реализуются классом tüst_diaiog. Windows обеспечивает поддержку элемен-
ложение В. Библиотека утилит Windows
285
тов управления с прокручивающимся списком, который отображает, прокручивает и выбирает пункт из списка текстовых строк. Класс tiist_diaiog вставляет этот элемент управления в диалог. Этот класс загружает диалог и список строк и возвращает индекс выбранной пользователем строки по закрытии диалога. Класс tdata_iist_diaiog идет на шаг дальше. Здесь диалог со списком отображает строки, связанные с объектами типизированных данных, которые являются членами класса ttyped_data_obj. Когда пользователь дважды щелкает мышью на элементе этого списка, на экране появляется соответствующий диалог для редактирования этого элемента. Например, если элемент - числовые данные, то на экране появится диалог для ввода числовых данных, если элемент - имя файла, то на экране появится стандартный диалог Windows для ввода имени файла и так далее. В Приложении А этот тип диалога со списком был назван диало! ом со списком объектов данных. Его пример показан на Рис. А.2.3. С точки зрения программирования преимущество диалога со списком объектов данных состоит в том, что новые элементы ввода данных могут быть добавлены к списку без перепроектирования диалога. То есть нет необходимости изменять файл ресурсов или добавлять дополнительное управление логикой в класс диалога. Нужно лишь вставить в список необходимый тип объекта данных, и вы автоматически получите диалог для редактирования значения этого объекта. Для более подробной информации о диалоге этого типа см. [48]. Реализация этой идеи на Java содержится в [50]. Предыдущая Следующая
|