Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Додавання деталей проекту, створення повідомлень




Відкриємо на вкладці 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 – Результат роботи програми

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...