em () і SetItem (). Перший метод використовується для додавання елементів в головний (перший) стовпець. Другий для додавання елементів в дочнрніе стовпці. Як параметр в кожну з функцій передається покажчик на структуру типу «LV_ITEM». Яка містить змінні визначають: номер (позицію) елемента в рядку, номер стовпчика, виведений текст, максимальну довжину рядка, що виводиться. Структура инициализируется перед викликом функцій: InsertItem () і SetItem () [6]. Демонстраційний приклад коду представлений нижче.
CListCtrl * pList=(CListCtrl *) GetDlgItem (IDC_LIST1); _ ITEM lvitem; .mask=LVIF_TEXT; .iItem=0; .iSubItem=0; .pszText=str.GetBuffer () ;. cchTextMax =lstrlen (str); gt; InsertItem ( amp; lvitem) ;. iSubItem=1; .pszText=_T ( Не виконано ) ;. cchTextMax=lstrlen (_T ( Не виконано ));
pList- gt; SetItem ( amp; lvitem);
Прапор «LVIF_TEXT» дозволяє вивід тексту. Мінлива str строкового типу CString, який є класом входить до MFC і надає широкі можливості роботи з рядком. Мінлива даного типу є динамічною, тобто пам'ять під неї виділяється в міру необхідності. Так як змінна pszText, структури lvitem, повинна привласнити покажчик, що адресує статичний блок пам'яті, необхідно зробити його таким. Для цього застосовується метод класу CString іменований GetBuffer () [6].
Щоб прочитати дані з елемента типу «List Control», потрібно замінити в розглянутому коді виклик функції InsertItem () на GetItem (). Після її виконання у змінній str виявиться текст необхідної комірки.
Щоб видалити необхідний рядок, використовують функцію DeleteItem (), як показано нижче.
CListCtrl * pList=(CListCtrl *) GetDlgItem (IDC_LIST1);
pList- gt; DeleteItem (m_nSelectItem);
Де m_nSelectItem - порядковий номер удаляемой рядка. Весь елемент «List Control» очищають за допомогою методу DeleteAllItems ().
Для введення повного шляху до Перетворювані xml-файлу, скористаємося стандартним діалоговим класом CFileDialog, наданим MFC. Оголосимо змінну типу цього класу. Визначимо значення зо три, які передаватимуться його конструктору. Нас цікавлять перший і третій атрибут. Перший, визначає, чи буде діолог відкривати файл або навпроти його зберігати. Другий встановимо в 0. Третій, вказує, якого типу файли будуть видні в діалозі. Для запуску побудови модального діалогового вікна відкриття файлу скористаємося функцією DoModal (). Даний метод поверне управління основного вікна програми лише після закриття їм викликаного.
Тобто, користувач не зможе звернеться до головного вікна, поки не закриє дочірнє. Код реаалізующій описані події представлений ніже.fdialog (TRUE, 0, _T ( *. Xml ));
fdialog.DoModal ();
Для вибору директорії в яку будуть зберігатися pdf-файли, скористаємося стандартним діалогом Windows. Для цього оголосимо структуру BROWSEINFO, привласнимо змінним, приналежному їй, значення, як показано нижче.
wchar_t sDir [512]; brinfo; .hwndOwner=0; .pidlRoot=0; .pszDisplayName=sDir; .lpszTitle=_T ( Виберіть папку для виведення pdf-файлів ) ;. ulFlags =BIF_RETURNONLYFSDIRS; .lpfn=0;
brinfo.lParam=0;
Для виведення діалогового вікна скористаємося функцією SHBrowseForFolder ( amp; brinfo). Яка повертає значення типу LPITEMIDLIST. Використовуючи змінну розглянутого типу і функцію SHGetPathFromIDList () одержимо шлях до вибраної користувачем папці. Приклад представлений ніже.pDirList=SHBrowseForFolder ( amp; brinfo); (pDirList, sDir);
У результаті буде виводиться д?? алогов представлений на малюнку 4.9.
Малюнок 4.9
Для того, щоб зробити неактивними кнопки програми необхідно скористатися функціями: GetDlgItem () і EnableWindow (). Перша возврвщает покажчик на об'єкт. Друга робить його пасивним, або активним, залежно від значень FALSE або TRUE, відповідно. Застосування цих функцій продемонструвати нижче.
GetDlgItem (IDC_BUTTON1) - gt; EnableWindow (FALSE);
Для передбачення можливості введення кількості відступів перед і після розділу в генерується специфікації, створимо за допомогою редактора форм діалогове вікно. Для цього в меню «Resource View» (Малюнок 4.4) потрібно клацнути правою кнопкою миші по елементу «Dialog» і вибрати «Add Resource». У вікні (Малюнок 4.10) вибрати «Dialog» і клацнути «New». У результаті до проекту буде додано новий шаблон діалогу. Після виконання ряду дій, принципи проведення яких були описані раніше, получется діалогове вікно представлене на малюнку 4.11.
Малюнок 4.10
Малюнок 4.11
Післ...