- •Лекція №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
- •Контрольні запитання
4. Додавання діалогу за допомогою класу
Ми розглянули створення діалогового вікна. При цьому ми не створювали новий клас. Подивимося тепер, як можна створити діалогове вікно з створенням нового класу.
Почнемо з того, що створимо ресурс для діалогового вікна. Для цього заходимо в меню Insert, далі вибираємо Resource. У діалозі вибираємо Dialog і натискаємо на New. Для того, щоб не сплутати наш діалог з попереднім, змініть його заголовок. Для цього клацніть на ньому правою кнопкою миші і виберіть Properties. У вікні властивостей змініть властивість Caption на Dialog (class):
Додавання діалогового вікна.
Закрийте вікно властивостей. Тепер використовуємо ClassWizard для створення нового класу. Для цього викличте для нашого нового діалогового вікна контекстне меню і виберіть у ньому ClassWizard. У вікні Adding a Class виберіть Create a new class і натисніть на OK:
З'явиться наступне діалогове вікно New Class. У ньому задайте властивість Name як CDlg і переконайтеся, що у випадному списку Dialog ID вибраний ідентифікатор нашого нового діалогового IDD_DIALOG2, після чого натисніть OK:
Після цього у вікні ClassWizard в списку класів з'явиться наш новий клас:
Тепер займемося необхідними змінами в коді. Їх кілька. По-перше, треба змінити обробник нашого меню. До цього в ньому викликалося перше діалогове вікно. Приберіть з обробника старий код та додайте код для появи нашого другого діалогового вікна:
void CMyMainWnd :: OnMyMenuDialog ()
{
CDlg dlg; dlg.DoModal ();
}
Так як ми використовуємо клас CDlg, то його заголовний файл треба додати в клас реалізації нашого класу CMyMainWnd (це файл, в якому ми написали обробник для меню):
# include <afxwin.h>
# include "resource.h"
# include "Dlg.h" ...
Тепер, якщо ви запустите нашу програму і виберете відповідне меню, то з'явиться наше нове діалогове вікно:
5. Обмін даними з діалогом
У цьому уроці ми з вами подивимося як, використовуючи ClassWizard, проводити обмін даних між програмою і діалоговим вікном. Наша програма буде передавати рядок з діалогового вікна в своє головне вікно і назад. Передана рядок буде з'являтися у заголовку нашого застосування.
Додайте на наше діалогове вікно Edit:
Для того, щоб передавати дані в діалог і назад, нам треба завести дві змінні - одну в класі діалогового вікна, а іншу - у віконному класі CMyMainWnd. Спочатку заведемо змінну в класі діалогового вікна. Для цього викликаємо ClassWizard, переходимо в ньому на вкладку Member Variables, у випадному списку Class name вибираємо клас нашого діалогового вікна CDlg, потім виділяємо ідентифікатор IDC_EDIT1 (це ідентифікатор Edit'а, який ми додали в наш діалог), і, нарешті, натискаємо на кнопку Add Variable:
Народитися вікно Add Member Variable. У ньому задайте m_sMyString в якості імені для нової змінної (і переконайтеся, що для ComboBox'а Variable type варто тип CString):
Натисніть OK. Додана нами змінна здасться в ClassWizard:
Крім того вона здасться в класі CDlg на вкладці ClassView:
Тепер додамо змінну у віконний клас:
class CMyMainWnd: public CFrameWnd
{
...
public: CString m_sMyString;
...
Тепер залишилося переписати код для нашого меню. Він повинен виглядати так:
void CMyMainWnd :: OnMyMenuDialog ()
{
CDlg dlg;
dlg.m_sMyString = m_sMyString; / / Передаємо дані в діалог
if (dlg.DoModal () == IDCANCEL) / / Якщо натиснули на cancel,
return; / / то виходимо
m_sMyString = dlg.m_sMyString; / / Передаємо дані і діалогу
SetWindowText (m_sMyString); / / Новий заголовок для вікна
}
Запускаємо програму і викликаємо наше діалогове вікно. Задаємо в ньому новий рядок:
Натискаємо на кнопку OK. Введений рядок здасться в заголовку нашої програми:
Також зверніть увагу, що при повторному виклику діалогу в ньому знову здасться наша рядок.
КОНТРОЛЬНІ ЗАПИТАННЯ
1. Назвіть послідовність етапів Створення меню?
2. Як Створити обробник меню, якими способами Це можна здійснити?
3. Назвіть послідовність етапів створення діалогового вікна?
