Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 63


Определив буфер обмена и создав в программе соответствующую переменную (у нас она имеет имя tsb и помещена в класс MyDialog), необходимо для каждого управляющего элемента диалога создать управляющий объект соответствующего класса OWL. Все управляющие классы выводятся из базового класса TControl, который сам является одним из производных класса TWindow (см. рис. 28.5, где показа­на часть структуры классов управляющих элементов, главным образом тех, которые используются в рас­сматриваемом или последующих примерах).

Для поля ввода (класс органа управления EDITTEXT, см. файл ресурсов 28-2.гс) создается объект класса TEdit, для альтернативной кнопки (класс органа управления BUTTON, стиль BS_AUTORADIOBUTTON) - объект класса TCheckBox, для списка - объект класса TListBox, для ком­бинированного окна - объект класса TComboBox и т.д. Создание управляющих объектов удобнее всего выполнить в конструкторе диалогового класса, причем порядок их создания должен строго соответство­вать порядку объявления соответствующих элементов в структуре буфера обмена. Так, для буфера обме­на нашего примера

typedef  struct{

char nameEdit[20]; char  jobEdit[20] ; char yearEdit[5]; bool  mEdit; bool   fEdit; }TSB;

требуется такая последовательность вызова конструкторов управляющих классов:

new TEdit(this,IDC_NAME,sizeof(tsb.nameEdit)); new TEdit(this,IDC_JOB,sizeof(tsb.jobEdit)); new TEdit(this,IDC_YEAR,sizeof(tsb.yearEdit)); new TCheckBox(this,IDC_M); new TCheckBox(this,IDC_F);


262                                                                                                                                  Глава 28

Как видно из приведенного фрагмента, конструкторы управляющих объектов могут иметь разный формат, но все они требуют в качестве первого параметра указатель на класс диалогового окна, в кото­ром эти объекты расположены; поскольку мы создаем объекты в конструкторе этого самого класса, то в качестве указателя на класс удобно использовать указатель this. Вторым параметром выступает иденти­фикатор соответствующего органа управления. Третий параметр, где он есть - это длина передаваемой через буфер строки текста. Заметим, что имена создаваемых объектов мы в программе использовать не будем, поэтому здесь, как и в других аналогичных случаях, вместо полной формы предложения с опера­тором new, например,




Начало  Назад  Вперед



Книжный магазин