додатка, як показано на малюнку 4.7 За допомогою поля Caption raquo ;, властивостей кожного об'єкта, наведемо його заголовок у відповідність з розглянутим малюнком.
Малюнок 4.6 - Вибір елемента Properties
Малюнок 4.7 - Додавання необхідних елементів до вікна розроблювального додатка
Для того щоб при запуску додатка кнопки: Перетворити xml в pdf і Видалити вибраний елемент були не активні, потрібно встановити, у властивостях кожного елемента, значення поля Disabled в True raquo ;. Щоб елемент List Control відображав колонки, необхідно в його властивостях, для поля View вказати значення Report raquo ;. Для віконного об'єкта Combo Box raquo ;, в поле Type потрібно вибрати значення Drop List raquo ;. Щоб даний об'єкт містив значення, скористаємося полем Data, ввівши в нього рядок виду ГрупСпец_Ф1_gost-B_0-9; ГрупСпец_Ф1_gost-B_10-19; ГрупСпец_Ф1_gost-B_20-29; raquo ;. У якій через крапку з комою вказаний список значень елемента Combo Box raquo ;. Так як поле, в якому відображатиметься директорія для виведення pdf-файлів, не повинно піддаватися редагуванню, встановимо його властивість Read Only в True .
Додамо в клас розроблюваної форми функції - обробники подій, що викликаються після натискання відповідної кнопки. Тобто, визначимо методи, кожен з яких буде викликатися при отриманні формою відповідного повідомлення від Windows. Для цього, в редакторі форм, два рази клацнемо по кнопці у вікні розроблюваної програми. Редактор Visual Studio автоматично додасть функцію - обробник повідомлення ON_BN_CLICKED (відправляється Windows додатком при клацанні лівою кнопкою миші по елементу Buttom ), яке надійде в чергу і обробиться додатком в порядку проходження. Так як повідомлення обробляються програмою дуже швидко, щёлчек користувача по описуваної кнопці, запущеного на виконання додатки, викличе відповідну функцію практично миттєво. Таким чином додаються обрабочкі подій клацання лівої кнопки миші для кожного об'єкта Buttom .
Для елемента форми типу List Control raquo ;, з ідентифікатором ресурсу IDC_LIST1 Визначено три обробника наступних повідомлень: LVN_ITEMCHANGED raquo ;, LVN_DELETEITEM raquo ;, LVN_ITEMACTIVATE raquo ;. Перший буде викликатися при виборі елемента, розглянутого об'єкта. Другий при його видаленні. Третій при подвійному клацанні мишкою по елементу. Для їх додавання, необхідно натиснути правою кнопкою мишки по розглянутому елементу, у вікні редактора форм, і в меню вибрати Add Event Handler raquo ;. У виведеному вікні (Малюнок 4.8): вибрати повідомлення; вказати клас (в даному випадку CXMLConverterDlg ), в який буде додана функція; ввести ім'я додається методу в поле з назвою Function handler name або залишити запропоноване за замовчуванням. Після виконання описаних дій клацнути по кнопці Add and Edit .
Малюнок 4.8 - Вказівка ??класу CXMLConverterDlg
У розглянутому елементі форми повинні відображатися три стовпці. Для визначення їх кількості, розмірів і імен заголовків напишемо наступний фрагмент програмного коду.
CListCtrl * pList=(CListCtrl *) GetDlgItem (IDC_LIST1); gt; InsertColumn (0, _T ( Повний шлях до xml-файлу ), 0,370, - 1); gt; InsertColumn ( 1, _T ( Статус ), 0,100, - 1); gt; InsertColumn (2, _T ( Стан ), 0,100, - 1);
Тут, за допомогою функції GetDlgItem () отримуємо у?? азатель на віконний елемент з ідентифікатором IDC_LIST1 raquo ;. Метод InsertColumn () створює колонку. У нього в якості параметрів передаються: порядковий номер, назва, положення тексту (0 означає, що текст буде вирівнюватися по лівому краю), ширина, зв'язок з іншими колонками (якщо значення - 1, зв'язку немає). Макрос _T () застосовується для перетворення рядка в Unicode. Розглянутий фрагмент коду необхідно помістити у віртуальну функцію OnInitDialog (), яка викликається Windows при ініціалізації діалогового вікна [6].
Дані виводяться в IDC_LIST1 з допомогу функцій: InsertItem () і SetItem (). Перший метод використовується для додавання елементів в головний (перший) стовпець. Другий для додавання елементів в дочнрніе стовпці. Як параметр в кожну з функцій передається покажчик на структуру типу LV_ITEM raquo ;. Яка містить змінні визначають: номер (позицію) елемента в рядку, номер стовпчика, виведений текст, максимальну довжину рядка, що виводиться. Структура инициализируется перед викликом функцій: InsertItem () і SetItem () [6]. Демонстраційний приклад коду представлений нижче.
* pList=(CListCtrl *) GetDlgItem (IDC_LIST1); _ ITEM lvitem ;. mask=LVIF_TEXT ;. iItem=0 ;. iSubItem=0 ;. pszText=str. GetBuffer () ;. cchTextMax=lstrlen (str); gt; InsertItem ( amp; lvitem) ;. iSubIte...