КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Створення пробного додатку
Для наочної роботи з обробкою повідомлень і картами повідомлень заздалегідь необхідно створити простий діалоговий додаток. Назвемо його Dialog. При створенні можна прибрати прапорець ActiveX Controls оскільки необхідності використовувати ActiveX об'єкти в даній лабораторній роботі немає, а програмний код стає простіше і наглядніше. 2.2.2 Додавання деталей проекту, створення повідомлень Відкриємо на вкладці Resource View Dialog.rc\Dialog\IDD_DIALOG_DIALOG [Английский (США)] та відредагуємо зовнішній вигляд додатку (рис. 2.1).
Рисунок 2.1 – Редагування зовнішнього вигляду додатку Розмістимо елементи: - Listbox, ідентифікатор залишимо за замовченням IDC_LIST1; - Edit control з ідентифікатором IDC_EDIT1; - дві кнопки Button з заголовками Add String та Delete String та ідентифікаторами IDC_BUTTON1 та IDC_BUTTON2; - CheckBox Control з заголовком Select all strings та ідентифікатором IDC_CHECK1. Додамо функції, що будуть обробляти події, за допомогою команди контекстного меню «Add Event Handler». В цьому вікні справа знаходиться список класів і об'єктів, доступних для створення заголовків; зліва для кожного конкретного класу або об'єкту виводиться список доступних повідомлень або подій, та зліва внизу ім'я функції, що буде обробляти подію. - Для IDC_BUTTON1, подія BN_CLICKED, ім'я OnButton1; - для IDC_EDIT1, подія ON_CHANGE, ім'я OnChangeEdit1; - для IDC_BUTTON2, подія BN_CLICKED, ім'я OnButton2; - для IDC_CHECK1, подія BN_CLICKED, ім'я OnCheck1. Кнопка Add&Edit створює функцію та відкриває текст програми для редагування. Додамо в нього текст функцій (лістинг 2.1).
void CDialogDlg::OnButton1() { m_ListBox.AddString(m_EditStr); //Додаємо рядок, що введений у поле Edit }
void CDialogDlg::OnChangeEdit1() { UpdateData(TRUE); } void CDialogDlg::OnButton2() { int nIndex = m_ListBox.GetSelCount(); //Підраховує кількість виділених елементів int i; CArray <int, int> aryListBoxSel; //Ініциалізація масиву
aryListBoxSel.SetSize(nIndex); //Задамо розмірність масива //Отримуємо індекси виділених елементів m_ListBox.GetSelItems(nIndex, aryListBoxSel.GetData()); for(i=aryListBoxSel.GetSize()-1; i>=0; i--) //Видаляємо виділені рядки m_ListBox.DeleteString(aryListBoxSel.GetAt(i)); } void CDialogDlg::OnCheck1() { int Items, i; Items = m_ListBox.GetCount(); //Отримуємо кількість елементів у списку for(i=0; i<=Items; i++) m_ListBox.SetSel(i); //Відмічаємо кожний елемент у циклі } Лістинг 2.1 – Функції обробки подій Зверніть увагу на карту повідомлень що буда згенерована автоматично у файлі з початковим кодом класу діалогового вікна. Вона зв'язує події та функції їх обробки (лістинг 2.2).
BEGIN_MESSAGE_MAP(CDialogDlg, CDialog) //{{AFX_MSG_MAP(CDialogDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_CHECK1, OnCheck1) //}}AFX_MSG_MAP END_MESSAGE_MAP() Лістинг 2.2 – Карта повідомлень Відкомпілюємо проект та перевіримо як працює програма (рис. 2.2) Рисунок 2.2 – Результат роботи програми 2.3 Завдання до лабораторної роботи Згідно з вказівками створити програму для роботи зі строками. Розібрати алгоритм обробки повідомлень. Розібрати команди, що використовуються в програмі. 2.4 Контрольні питання 2.4.1 Поясніть відмінність програмування в ОС Windows від програмування в ОС DOS. 2.4.2 Дайте визначення поняття «подія». 2.4.3 Дайте визначення поняття «повідомлення». 2.4.4 В якому разі повідомлення обробляється стандартним чином? 2.4.5 Структура карти повідомлень та її місце в програмі. 2.4.6 Основні макроси карти повідомлень. 2.4.7 Як зв’язати активний елемент вікна програми з функцією обробки повідомлення? ЗАВДАННЯ №3 Мета роботи: розібратися з механізмом виводу інформації на екран в Windows. Навчитися виводити на екран різну інформацію – текстову, графічну. Навчитися маніпулювати параметрами шрифтів, що виводяться на екран. 3.1 Теоретичні відомості 3.1.1 Загальні відомості про вивід на екран Вивід в графічному режимі може здійснюватися різними стандартними і призначеними користувачем шрифтами. Розрізняють два типи шрифтів: растрові і векторні. Растровий шрифт задається матрицею крапок, а векторний – рядом векторів, що становлять символ. Стандартним значенням після ініціалізації графічного режиму встановлюється растровий шрифт DefaultFont, який, як правило, є шрифтом, використовуваним драйвером клавіатури. Нижче наведені стандартні шріфти - TriplexFont Trip.chr - SmallFont Litt.chr - SansSerifFont Sans.chr - GothicFont Goth.chr Більшість стандартних шрифтом не містить російських символів. Розробка ж власних шрифтів – досить складний і трудомісткий процес. Встановити потрібний шрифт можна процедурою SetTextStyle(Font,d,c:word), де Font – вибраний шрифт, d – напрям (горизонтальне або вертикальне), з – розмір символів, що виводяться. Можливі значення двох перших параметрів. При організації вертикального виводу необхідно враховувати, що якщо не встановити точку початку виводу за допомогою MoveTo, то текст починається з нижнього рядка екрану і продовжується вгору. Величина символів встановлюється коефіцієнтом з. Якщо с=1, то символ будується в матриці 8*8, якщо с= 2, то матриця 16 і т.д. до 10-кратного збільшення. Наприклад виведемо 2 рядки (вертикальну і горизонтальну) шрифтом DefaultFontразной величини: SetTextStyle(0,11); {букви стандартної величини} OutTextXY(200, 200, ‘Вертикальний рядок’); SetTextStyle(0, 0, 2); {розмір букв збільшений} OutTextXY(200, 220, ‘Горизонтальний рядок’);
Дата добавления: 2014-12-07; Просмотров: 339; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |