Введення
програма блокнот панель меню
Мова C був винайдений і реалізований Денісом Рітчі в операційній системі Unix. Ця мова був розроблений на основі більш старої мови BCPL, створеного у свій час Мартіном Річардсом. У свою чергу розвиток мови B призвело до створення в 1970 році мови C. Стандарт ANSI був остаточно прийнятий у грудні 1989 року і вперше опублікований на початку 1990 року. Цей стандарт був остаточно прийнятий організацією ISO.
Будь-яка програма на C складається з однієї або декількох функцій. Функції в C служать для реалізації окремих виконавців. Обов'язково повинна бути визначена єдина головна функція main, саме з неї починається виконання програми. Саме вона виконує всю роботу, звертаючись при необхідності до інших функцій. Мова Сі розроблявся як заміна або доповнення мови Assembler` а для задач системного програмування. На цій мові була написана перша мультиплатформенна ОС UNIX.
1. Необхідне програмне забезпечення
В якості програмного забезпечення використовується студія Microsoft Visual C ++ 6.0, стандартна віндоузовская програма Paint, а також програма Help amp; Manual для створення файлу довідки.
. Основні файли, використовувані в проекті
. cpp - основний файл програми; .res - файл ресурсів; .h - заголовний файл ресурсів; .bmp - графічний файл, який зображає панель для меню другого рівня; .hlp - файл довідки про програму.
. Проектування програми
Спочатку програма Текстовий Редактор Блокнот проектується на аркуші паперу.
Перший етап проектування програми. Потрібно продумати, з яких компонентів складатиметься програма. Вікно повинне мати три основні кнопки і мати можливість змінюватися в розмірі. Також основними компонентами вікна повинні бути: рядок заголовка, меню верхнього рівня, панель інструментів для меню другого рівня і статусна панель.
Малюнок 1.
Щоб створити меню верхнього рівня, потрібно його теж спроектувати на аркуші паперу і ретельно продумати, який пункт меню які підпункти повинен містити і намалювати схему меню. Пункт з назвою Про програму теж повинен бути але для простоти його дія не прописується.
Другий етап проектування програми. Потрібно продумати і намалювати програму з усіма складовими її компонентами, включаючи меню другого рівня з піктограмами (Зберегти, відкрити і друк), статусну панель і саму робочу область, в якості якої використовується елемент richedit. Макет цієї програми наведено на малюнку 3.
Малюнок 2.
Малюнок 3.
У першу чергу програмно створюється саме вікно. Для цього потрібно підключити бібліотеку windows.h і оголосити головну функцію програми WinMain () а також віконну функцію WndProc (). Ця функція також називається віконної процедурою. Вона пов'язана з циклом обробки повідомлень через зворотний виклик CALLBACK. Будь-яка програма починається писатися з функції WinMain, тобто з основної функції програми під Microsoft Windows. Для більш простих компіляторів вона має структуру WINAPI. Функція починається з оголошення структури типу класу WNDCLASS, створення змінної w і її ініціалізації. Потім для більш докладного опису вікна через цю змінну потрібне число раз викликаються поля (методи класу) і цим методам присвоюються потрібні значення. Після опису вікна через функцію розгалуження відбувається реєстрація вікна з поверненням значення 1, а інакше - 0. Потім після ініціалізації потрібно функцією CreateWindow створювати як саме вікно, так і всі дочірні вікна. Функція CreateWindow має такі параметри як клас вікна, заголовок вікна, константи для докладного опису вікна через логічний оператор АБО, координати вікна по осях x і y відносно точки знаходиться у верхньому куті ліворуч, розміри вікна (довжину і ширину), взаємозв'язку з дочірніми вікнами, якщо вони є і головний дескриптор вікна hInstance а також рідко використовувані параметри.
Потім потрібно відобразити вікно за допомогою функції ShowWindow і за необхідності його оновити (функція UpdateWindow), але для цього потрібно здійснити перевірку через функцію розгалуження if (), чи створена вікно. Якщо вікно не створено, то функція повертає нульове значення. Після відображення вікна в програмі йде головний цикл обробки повідомлень (MessageLoop). У цьому циклі міститься функція GetMessage, яка зчитує повідомлення, в pамках діапазону фильтpация, з очеpеди повідомлень прикладні завдання і залишає упpавление дpугим прикладні завданням, якщо повідомлень немає або якщо наступним повідомленням є WM_PAINT або WM_TIMER. Вона має параметри: Msg: пpинимающего ...