клацаємо по елементу «Dialog». У списку, що розкрився вибираємо «IDD_XMLCONVERTOR_DIALOG», як показано на малюнку 4.4.
Малюнок 4.3
Малюнок 4.4
Для додавання елементів у форму, нам знадобиться меню «Toolbox». Для його відкриття необхідно клацнути в меню «View» по елементу з відповідним ім'ям. З діалогового меню будемо використовувати об'єкти: «Button», «Edit Control», «Combo Box», «Static Text», «List Control». На малюнку 4.5 показана частина меню «Toolbox».
Малюнок 4.5
Для того щоб додати елемент, досить клацнути мишкою по обраному об'єкту, і тримаючи клавішу натиснутою, перетягнути його на редагований діалог. Для відкриття вікна властивостей доданого елемента необхідно, клацнути по ньому правою кнопкою миші, вибрати, в контекстному меню, елемент «Properties» (Малюнок 4.6).
Додамо необхідні елементи до вікна розроблювального додатка, як показано на малюнку 4.7. За допомогою поля «Caption», властивостей кожного об'єкта, наведемо його заголовок у відповідність з розглянутим малюнком.
Для того щоб при запуску додатка кнопки: «Перетворити xml в pdf» і «Видалити вибраний елемент» були не активні, потрібно встановити, у властивостях кожного елемента, значення поля «Disabled» в «True». Щоб елемент «List Control» відображав колонки, необхідно в його властивостях, для поля «View» вказати значення «Report». Для віконного об'єкта «Combo Box», в полі «Type» потрібно вибрати значення «Drop List». Щоб даний об'єкт містив значення, скористаємося полем Data, ввівши в нього рядок виду «ГрупСпец_Ф1_gost-B_0-9;ГрупСпец_Ф1_gost-B_10-19;ГрупСпец_Ф1_gost-B_20-29;». У якій через крапку з комою вказаний список значень елемента «Combo Box». Так як поле, в якому відображатиметься директорія для виведення pdf-файлів, не повинно піддаватися редагуванню, встановимо його властивість «Read Only» в «True».
Малюнок 4.6
Додамо в клас розроблюваної форми функції - обробники подій, що викликаються після натискання відповідної кнопки. Тобто, визначимо методи, кожен з яких буде викликатися при отриманні формою відповідного повідомлення від Windows. Для цього, в редакторі форм, два рази клацнемо по кнопці у вікні розроблюваної програми. Редактор Visual Studio автоматично додасть функцію - обробник повідомлення «ON_BN_CLICKED» (відправляється Windows додатком при клацанні лівою кнопкою миші по елементу «Buttom»), яке надійде в чергу і обробиться додатком в порядку проходження. Так як повідомлення обробляються програмою дуже швидко, щёлчек користувача по описуваної кнопці, запущеного на виконання додатки, викличе відповідну функцію практично миттєво. Таким чином додаються обрабочкі подій клацання лівої кнопки миші для кожного об'єкта «Buttom».
Малюнок 4.7
Для елемента форми типу «List Control», з ідентифікатором ресурсу «IDC_LIST1» визначив три обробника наступних повідомлень: «LVN_ITEMCHANGED», «LVN_DELETEITEM», «LVN_ITEMACTIVATE». Перший буде викликатися при виборі елемента, розглянутого об'єкта. Другий при його видаленні. Третій при подвійному клацанні мишкою по елементу. Для їх додавання, необхідно натиснути правою кнопкою мишки по розглянутому елементу, у вікні редактора форм, і в меню вибрати «Add Event Handler». У виведеному вікні (Малюнок 4.8): вибрати повідомлення; вказати клас (в даному випадку «CXMLConverterDlg»), в який буде додана функція; ввести ім'я додається методу в поле з назвою «Function handler name» або залишити запропоноване за замовчуванням. Після виконання описаних дій клацнути по кнопці «Add and Edit».
Малюнок 4.8
У розглянутому елементі форми повинні відображатися три стовпці. Для визначення їх кількості, розмірів і імен заголовків напишемо наступний фрагмент програмного коду.
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». Метод InsertColumn () створює колонку. У нього в якості параметрів передаються: порядковий номер, назва, положення тексту (0 означає, що текст буде вирівнюватися по лівому краю), ширина, зв'язок з іншими колонками (якщо значення - 1, зв'язку немає). Макрос _T () застосовується для перетворення рядка в Unicode. Розглянутий фрагмент коду необхідно помістити у віртуальну функцію OnInitDialog (), яка викликається Windows при ініціалізації діалогового вікна [6].
Дані виводяться в «IDC_LIST1» з допомогу функцій: InsertIt...