
- •Національний університет «Львівська політехніка» іепт ім. В’ячеслава Чорновола
- •Курсовий проект
- •1. Формулювання задачі
- •2. Методи та засоби розв’язання задачі
- •2.1 Клас вікон
- •2.2 Створення|створіння| вікон
- •2.3 Головна|чільна| функція додатка |застосування|
- •2.4 Полоса прокрутки
- •2.5 Створення|створіння| смуги прокрутки
- •2.6 Повідомлення|сполучення| від смуги прокрутки
- •2.7 Керування смугою прокрутки
- •2.8 Створення|створіння| списку
- •2.10 Функції виведення тексту
- •2.11 Меню
- •2.12 Створення|створіння| меню
- •2.13 Вставка елементів в меню
- •2.14 Видалення|віддалення| елементів з|із| меню
- •2.15 Акселератори
- •3. Алгоритм розв'язування задачі
- •4.1 Призначення програми
- •Мови програмування, на яких написана програма
- •Програмні засоби, необхідні для реалізації програми
- •Технічні засоби, необхідні для реалізації програми
- •5. Інструкція користувачеві
- •5.1 Головне вікно програми
- •Контрольний приклад та аналіз результатів комп'ютерної реалізації програми
- •Список використаної література
- •Додатки Додаток 1. Код TextEdit.Cpp
- •Додаток 2. Код MainFrm.Cpp
- •Додаток 3. Код MainFrm.H
- •Додаток 4. Код TextEdit.H
- •Додаток 5 Код TextEdit.Rc
2.2 Створення|створіння| вікон
Для створення|створіння| вікна викликають|спричиняють| функцію CreateWindow|. Вона створює вікно, що перекривається|перекриває|, тимчасове або дочірнє, і встановлює початкове значення| деяких його параметрів.
Призначення аргументів виклику цієї функції:
- lpClassName| вказує|вказує| на зареєстрований функцією RegisterClass| або визначеного операційною системою класу.
- dwStyle| задає стиль вікна. Стиль вікон окремо розглянемо |розглядатиме| нижче.
x — координата лівого краю вікна в пікселях. Для |тимчасових вікон x відлічують від лівого краю екрану |робочої зони батьківського вікна. Якщо для перекриваючого| вікна із|із| стилем WSJVISIBLE| як x задати константу| CW_USEDEFAULT|, Windows| встановлює не обов’язково| нульову позицію за умовчанням для лівого верхнього кута|кутка| вікна і| ігнорує координату біля|в| верхнього краю вікна. Для тимчасового| дочірнього вікна така позиція за умовчанням рівна (0, 0).
- nWidth| - ширина вікна в пікселях. Для вікон можна|, що перекриваються|перекривають|, задати рівною CW_USEDEFAULT|. В цьому випадку система встановлює| ненульові значення ширини і висоти за умовчанням і ігнорує| задану висоту nHeight| вікна. Ширина і висота тимчасового| і дочірнього вікна за умовчанням дорівнюють нулю|нуль-індикатору|.
- hWndParent| може вказувати|вказувати| тільки|лише| на ініційоване вікно. Дескриптор вікна-батька обов'язково вказують|вказують| при створенні|створінні| дочірнього| вікна. Дескриптор вікна-власника для тимчасового вікна вказувати| необов'язково.
- hMenu| - дескриптор меню або ідентифікатор створюваного дочірнього| вікна.
Меню вікна, що перекривається|перекриває| або тимчасового, можна задати трьома способами:
1) у класі вікон вказують|вказують| ім'я меню, і всі вікна цього класу можуть| користуватися цим меню;
2) ім'я меню вказують|вказують| як аргумент функції CreateWindow|, і потрібне| вікно користуватиметься цим меню, ігноруючи меню| класу;
30 меню створюють в процесі або після|потім| створення|створіння| вікна.
У першому і третьому випадках аргумент hMenu| рівний NULL|.
Якщо створюється дочірнє вікно, то аргументом hMenu| задають Ідентифікатор| цього вікна (цілочисельну константу).
Перед створенням|створінням| вікна функція CreateWindow| посилає код повідомлення|сполучення| WM_CREATE| функції створюваного вікна. Вона потім обробляє повернуте| функцією вікна значення і створює вікно, якщо це значення дорівнює 0, або не створює вікна, якщо значення рівне -1. Відповідно функція Create|Window| повертає дескриптор створеного вікна або NULL|.
2.3 Головна|чільна| функція додатка |застосування|
Додатки|застосування| завжди описують функцію з|із| ім'ям WinMain|. Вона отримує|одержує| управління при запуску додатка|застосування|, виконує властиві звичайним|звичним| функціям дії, реєструє класи вікон, створює вікна, опитує чергу повідомлень|сполучень| і розподіляє свої повідомлення|сполучення|.
Приклад|зразок| опису функції WinMain|: int| WINAPI| WinMain|( HINSTANCE| hlnstance|
HINSTANCE| hPrevlnstance|, LPSTR| lpszCmdLine|, int| nCmdShow|) { MSG| msg|; HWND| hwnd|;
if| (!RegClass(WndProc|, szClassName|)) return| FALSE|; hwnd| = CreateWindow|(szClassName|, "Приклад|зразок| Г
WS_OVERLAPPEDWINDOW|
CW_USEDEFAULT|, CW| USEDEFAULT|
CW_USEDEFAULT|, CW_USEDEFAULT|
0, 0, hlnstance,NULL|); if| (!hwnd) return| FALSE|; ShowWindow|( hwnd|, SW_SHOWMAXIMIZED|); UpdateWindow|(hwnd|); while| (GetMessage|(&msg|, 0,0,0)) { TranslateMessage|(&msg|); DispatchMessage|(&msg|); } return| msg|.wParam;
}
Ім'я, тип повернення і список формальних параметрів функції опреділеними |вимогами Windows| API|. Модифікатор WINAPI| вказує|вказує| на те, що функція при отриманні|здобутті| аргументів сама повинна виправити| порядок|лад| розташування аргументів в стеку.
Параметр hInstance| від операційної системи отримує|одержує| дескриптор поточного екземпляра|примірника| додатка|застосування|. Параметр hPrevlnstance| в 16-разрядних| застосуваннях вказує|вказує| на активний попередній екземпляр|примірник| додатка| або NULL|. У додатках|застосуваннях| Win32| він завжди рівний NULL| і по ньому неможливо дізнатися про існування інших активних екземплярів|примірників| цього застосування. Параметр lpszCmdLine| вказує|вказує| на рядок з|із| аргументами| командного рядка запуску додатка|застосування|. При звичайному|звичному| запуску цей параметр рівний NULL|. Параметр nCmdShow| передає додатку|застосуванню| спосіб початкового відображення вікна.
У тілі функції WinMain| описані змінні msg| і hwnd|. Змінна msg| призначена для тимчасового зберігання повідомлень|сполучень| при їх отриманні|здобутті| і розподілі. Змінна hwnd| зберігає дескриптор створеного вікна.