Додавання деталей проекту, створення повідомлень
Відкриємо на вкладці 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 – Результат роботи програми
Читайте также: III. Тіні архітектурних деталей і фрагментів. Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|