- •Лекція №1 Тема: Мова програмування: загальні поняття та означення. Загальні поняття візуального програмування план
- •2. Інтегроване середовище розробки
- •3. Основні поняття візуального програмування
- •4. Етапи розв’язування задачі на еом
- •Лекція № 2
- •Поняття та призначення відладчика програми.
- •Інтегроване середовище розробки програм. Керовані і некеровані програми
- •Поняття та призначення відладчика програми
- •3. Інтегроване середовище розробки програм. Керовані і некеровані програми
- •Контрольні запитання
- •Лекція 3
- •1 Консольний додаток
- •2. Діалоговий додаток
- •3 Багатовіконний додаток Windows
- •4.Одновіконний додаток
- •Контрольні запитання
- •Лекція № 4
- •2. Оголошення або специфікація класу
- •3. Реалізація класу
- •Контрольні запитання
- •Лекція 5
- •1. Програмне середовище Windows
- •2. Основи програмування під Windows
- •3. Типи даних в Windows
- •Переваги використання mfc (самостійно)
- •5. Архітектура додатка
- •6. Типи майстрів проектів (самостійно)
- •7. Обробка подій в додатках класу mfc
- •Повідомлення миші
- •Введення за допомогою миші
- •Контрольні запитання
- •Лекція 6 Тема: Програмування інтерфейсу користувача: кнопки, списки план:
- •2. Обробка натискання кнопки
- •3. Клас cListBox
- •2. Завдання реакції на вибір в ComboBox
- •3. Операції з елементами
- •4. Діалог в якості головного вікна
- •Контрольні запитання
- •Лекція 8 Тема: Програмування інтерфейсу користувача: меню, діалогові вікна план
- •2. Створення обробника меню
- •3. Додавання діалогового вікна
- •4. Додавання діалогу за допомогою класу
- •5. Обмін даними з діалогом
- •4. Назвіть послідовність етапів створення діалогу за допомог класу?
- •2. Забезпечення видалення, редагування, додавання записів в бд
- •3. Забезпечення сортування та фільтрації записів з бд.
- •4.Стандарт odbc і dao
- •Контрольні запитання
Контрольні запитання
1. Що являє собою середовище розробки Visual C + +?
2. Що являє собою бібліотека MFC?
3. Назвіть основні компоненти Visual C++?
4. Поняття та призначення відладчика програми?
5. Що являють собою бібліотеки?
6. Які програми називаються керованими і некерованими?
Лекція 3
Тема: Використання майстра створення додатків Visual C + +
ПЛАН:
1 Консольний додаток
2. Діалоговий додаток
3 Багатовіконний додаток Windows
4 Одновіконний додаток
Середовище програмування Visual С + + використовується не тільки для редагування, компіляції та відлагодження програм, але і для генерації заготовок програм. Ці заготовки являють собою працездатні програми, що реалізують основні елементи інтерфейсу Windows, необхідні в будь-якій користувальницькій програмі, і, не виконують ніякої обробки. Майстер додатків дозволяє створити таку заготовку за кілька хвилин, однак, щоб отримати на її основі повноцінний комерційний додаток, у вас підуть тижні і місяці роботи. Програмісту, починаючому своє ознайомлення з Visual С + +, необхідно, перш за все, ознайомитися з найпростішими типами додатків, що генеруються майстрами. До них слід віднести консольні додатки й додатки, що згенерували майстром MFC AppWizard (exe) (майстер AppWizard, що генерує виконуючи програми з використанням бібліотеки MFC). Назва останнього типу додатків слід визнати вкрай невдалим, оскільки бібліотеку MFC використовують практично всі типи додатків, компільованих Visual С ++ (навіть деякі консольні додатки). Крім того, використання імені майстра AppWizard тільки в трьох майстрів, генеруючих програмні коди для виконавчих файлів, динамічних бібліотек та керуючих елементів ActiveX, вносить непотрібну неоднозначність в термінологію. Тому доцільніше було б використовувати це ім'я для всіх майстрів додатків. Для визначеності будемо називати додатки, згенеровані майстром MFC AppWizard (exe), додатком Windows. Особливим класом додатків Windows є діалоговий додаток.
1 Консольний додаток
З точки зору програміста, консольний додаток є звичайною програмою DOS, що використовує всі стандартні оператори, але дозволяє використовувати всю доступну оперативну пам'ять (за умови, що кожен елемент даних програми не буде превищувати за розміром 1 Мб). Цей тип додатка запускається в особливому типі вікна, званому "Вікно MS-DOS".
Перетворюючи програми, написані під DOS, в консольний додаток необхідно пам'ятати, що MS-DOS є 16-розрядної операційною системою, a Windows 95, Windows 98 і Windows NT є 32-розрядними операційними системами. З точки зору програми це означає, що в MS-DOS і Windows 3.x використовуються 16-розрядні покажчики, а в Win32 - 32-розрядні покажчики. Для спрощення переносу програм, написаних для 16-розрядних ОС, в 32-розрядні ОС розмір змінної типу int встановлюється рівним розміру покажчика. Тому в консольному додатку змінна типу int займає 4 байти, а не два, як це має місце в програмах, написаних під DOS.
Консольним додаткам розробники Visual С + + приділяють постійну увагу, і саме на прикладі консольних додатків і можливостей майстра, що створює для них заготовки, найбільш яскраво простежуються етапи розвитку Visual С + + при переході від однієї його версії до іншої.
Створення консольного додатка
Щоб створити заготівлю консольного додатка з використанням майстра:
1. Закрийте всі відкриті проекти та файли і виберіть команду File, New (Файл, Створити). З'явиться діалогове вікно New (Створити), розкрите на вкладці Projects (Проекти).
2. Виділіть пункт Win32 Console Application (консольний додаток для 32-розрядного Windows) і введіть в текстове вікно Project name (Ім'я проекту) ім'я проекту Console. В результаті цих дій діалогове вікно New прийме вигляд, зображений на рис. 1.1.
Рис.1.1 – Окно New
3. Натисніть кнопку ОК. З'явиться діалогове вікно Win32 Console Application - Step 1 of 1 (Консольний додаток для 32-розрядного Windows. - Крок 1 з 1), зображений на рис. 1.2.
Група перемикачів What kind of Console Application do you want to create? (Яке консольний додаток слід створити?) Містить наступні позиції:
• An empty project (Порожній проект) - майстер створює додаток, в якому відсутні файл реалізації, файл заголовка і файл ресурсів. Можливість створення всіх цих файлів повністю надається вам
• A simple application (Простий додаток) - майстер створює додаток, що складається з файлу реалізації та файлу заголовка. У файлі реалізації відсутні виконавчі оператори
• А "Hello World!" application (Додаток "Hello World!") - майстер створює додаток, аналогічне попередньому, але в ньому файл реалізації містить оператор виводу на екран рядка "Hello World!"
• An application that supports MFC (Додаток, що використовує функції з бібліотеки MFC) - майстер створює додаток, що виводить на екран рядок, оформлений, як строковий ресурс.
Рис 1.2 - Діалогове вікно Win32 Console Application - Step 1 of 1
4. Після установки перемикача у відповідне положення натисніть кнопку Finish (Завершення роботи). З'явиться діалогове вікно New Project Information (Інформація про створюваний проекті), зображене на рис. 1.3.
Рис. 1.3 - Діалогове вікно New Project Information
5. Натисніть кнопку ОК. Майстер створить новий додаток.
Якщо ви встановите перемикач вибору генерується додатки в положення An empty project, то вам доведеться писати всі файли програм проекту вручну, що не можна назвати вдалим вибором при генерації заготовки програми.
При установці перемикача вибору генерується додатки в положе ¬ ня A simple application в результаті роботи майстра буде створена найпростіша заготівля файлу реалізації і файл заголовка StdAfx.h, що відноситься до генеруємому майстром файлу StdAfx.cpp, відповідальному за створення перекомпілювати заголовків. Текст заготовки файлу реалізації, одержуваний при даних установках елементів управління, приведений в лістингу 1.1.
Лістінг1.1 Заготівля файлу реалізації консольного застосування// Console.cpp : Defines the entry point for the console application.
#include "stdafx.h"
int main(int arge, char* argv[])
{
return 0;
}
Оскільки в даному проекті в функції main відсутнє виконання оператора, то результатом запуску даного проекту на виконання з'явиться поява порожнього вікна MS-DOS, яке необхідно тут же закрити. Як випливає з тексту даного лістингу, ця установка є оптимальною для користувача, не має намір користуватися класами з бібліотеки MFC.
Положення перемикача вибору генерованого додатку "Hello World!" application і An application that supports MFC є чисто демонстраційними і різними способами реалізують одну і ту ж дію - виведення на екран рядків символів.
Як випливає з лістингу 1.2, перше демонстраційне прикладення здійснює висновок стандартним способом з використанням функції printf.
Лістинг 1.2. Консольний додаток "Hello World!"
// Console.cpp : Defines the entry point for the console application.
#include "stdafx.h"
int main(int arge, char* argv[])
{
printf("Hello World!\n");
return 0;
}
Щоб запустити даний проект на виконання:
1. Виберіть команду меню Build, Execute Console.exe (Компіляція, Запустити файл Console.exe на виконання) або натисніть кнопку Execute Program (Запустити програму на виконання) в панелі інструментів Build (Компіляція) або в панелі інструментів Build MоnоBar (Зменшена панель інструментів компіляція). З'явиться вікно повідомлення Microsoft Visual С + +, в якому повідомляється, що виконуваний файл даного додатка відсутній, і питає про необхідність його створення.
2. Натисніть на кнопку Так, підтверджуючи необхідність створення файлу. Почнеться компіляція програми, по закінченні якої отриманий виконавчий файл буде запущений, і з'явиться вікно MS-DOS, в якому будуть відображені результати роботи програми. Це вікно наведено на рис. 1.4.
Рис 1.4 - Вікно повідомлення Microsoft Visual С + +
Рядок "Press any key to continue" (Натисніть будь-яку клавішу, щоб продовжити роботу), розташована після рядка "Hello World!", повідомляє користувачеві про те, що програма завершила роботу, і вікно залишається на екрані тільки для того, щоб користувач міг прочитати результати її роботи. Після того як користувач переконається, що програма коректно завершила свою роботу, йому досить натиснути на будь-яку клавішу, щоб закрити вікно MS-DOS і перейти до виконання інших завдань.
Останнє, четверте положення перемикача вибору генерується додатком - An application that supports MFC - служить для демонстрації того, що консольні додатки можуть використовувати функції з бібліотеки MFC, однак, оскільки дана бібліотека орієнтована, в основному, на роботу з вікнами і документами, велика її частина залишається незатребуваною консольним додатком. Для того щоб продемонструвати можливості цієї бібліотеки в даному типі додатка, рядок що виводиться на екран оформлений у вигляді строкового ресурсу. Таким чином, у цьому додатку генеруються файли реалізації, файли заголовків та файл опису ресурсів. Текст файлу реалізації даного додатка приведений в лістингу 1.3.
Лістинг 1.3. Консольний додаток, що використовує бібліотеку MFC
// Console.срр : Defines the entry point for the console application.
#include "stdafx.h" #include "Console.h"
#ifdef _DEBUG #define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = _FILE_;
#endif
////////////////////////////////////////////////////////////////////////
// The one and only application object
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinlnit (: :GetModuleHandle(NULL), NULL, : :GetCommandLine (), 0))
{
// TODO: change error code to suit your needs
cerr << _T("Fatal Error: MFC initialization failed") << endl;
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here. CString strHello; strHello.LoadString(IDS HELLO); cout << (LPCTSTR)strHello << endl;
}
return nRetCode;
}
Порівнюючи листинги 1.2 і 1.3, слід звернути увагу, що в них обробка починається з виклику функції Afxwininit і перевірки повертаючої нею величини. Зазвичай ця функція викликається функцією winMain, яка є частиною бібліотеки MFC, і цей виклик відбувається в процесі ініціалізації об'єкту класу cwinApp. Оскільки консольні додатки не використовують функцію winMain, то в них необхідно безпосередньо викликати функцію Afxwininit для ініціалізації бібліотеки MFC.
При безпосередньому виклику користувачем функції Afxwininit в якості першого її параметра необхідно вказати дескриптор поточного модуля, в якому зберігається об'єкт класу cwinApp. У разі консольного додатку користувач може вибрати в якості поточного модуля об'єкт, похідний від класу cwinApp, або безпосередньо використовувати об'єкт класу cwinApp. Остання стратегія застосовується у тому випадку, коли вся обробка інформації зосереджена в функції main даного додатка.
Функція GetModuieHandie, використовувана в якості першого аргументу функції Afxwininit, повертає дескриптор модуля по імені файлу (.Ехе або .Dll), в якому міститься виконуваний код даного модуля. Якщо, як в даному випадку, параметром даної функції є null, то функція GetModuieHandie повертає дескриптор файлу, використаного для створення даного процесу.
Функція GetcommandLine, використовувана в якості третьої аргументу функції AfxWininit, повертає покажчик на командний рядок поточного процесу. Цей покажчик може бути використаний консольним процесом, оформленим у відповідності зі стандартом ANSI мови програмування С, для доступу до аргументів командного рядка за допомогою параметрів arge І argv, переданих функції main.
Якщо функція AfxWininit повертає значення false, то програма видає повідомлення про помилку з використанням стандартного потоку для виведення помилок і припиняє свою роботу. В іншому випадку формується об'єкт класу estring, описаного в бібліотеці MFC. В цей об'єкт, що має ім'я strHello, завантажується строковий ресурс ids_hello, а потім об'єкт виводиться на екран з використанням стандартного потоку виводу cout.
Процедура запуску програми на виконання і результати її роботи в основному аналогічні процедурі запуску і результатами роботи описаної до цього програми, не використовує класи MFC, тому немає ніякого сенсу описувати цю процедуру ще раз.
Дана програма може бути використана в якості заготовки консоль-ного додатку, що використовує бібліотеку MFC. Для цього замість фрагмента програми, що здійснює висновок рядка на екран, повинен розміщуватися текст користувацької програми.
Використання консольного додатку
Іншою областю використання консольного застосування є тестування нових алгоритмів. Якщо ці тестовані алгоритми не пов'язані з виводом на екран графічної інформації, використання консольного застосування є кращим виходом із створення середовища для перевірки їх функціонування. Єдина незручність, пов'язана з необхідністю включення в файл ресурсів консольного застосування строкових ресурсів, до яких звертається користувальницька бібліотека програм, може бути легко усунуто використанням заголовних файлів » ресурсів, що включаються в цей файл.
