Створення діалогових вікон

Створення діалогових вікон заданої конфігурації в VISUAL C++ 6.0 з використанням бібліотеки MFC. Для цього потрібно відкрити новий ресурс (діалогове вікно) в створеному проекті і задати (виділивши маніпулятором миша) потрібний розмір діалогового вікна. Після цього можна задавати у новоствореному вікні потрібні об¢єкти, вибравши тип потрібного об¢єкту на верхній панелі інструментів. Місце розташування потрібного об¢єкта (рамка, напис, вікно для редагування (Edit), селекторні кнопки(RadioButton), контрольні перемикачі (CheckBox), комбіновані списки (ComboBox), списки (ListBox) та багато інших) потрібно вказати курсором мишки і задати для деяких із них розмір. Після того, як зображення елемента з¢явилось можна задати йому певних параметрів та властивостей. Все це відбувається візуально.

Створивши всі необхідні об¢єкти, програма автоматично запише весь текст програми, який відповідатиме за створення даного діалогового вікна, у файл ресурсів Script.RC. На цьому візуальна частина створення діалогових вікон скіінчилась. Для того, щоб таке вікно працювало, потрібно описати в головній програмі project.CРР власні класи діалогових вікон, які будуть потомками стандартних класів. Для ініціалізації потрібно створити змінні певних типів для всіх активних елементів діалогового вікна у створеному для нього класі і задати їм початкові значення.

Для передачі даних, які були введені в діалоговому вікні, найпростішим способом є закріплення за цим діалоговим вікном структури, в якій будуть описані глобальні змінні відповідно до порядку ініціалізації активних елементів вікна.


Етапи створення діалогового вікна в даній курсовій роботі:

1.Створення власного класу діалогового вікна class CMyDialog:public CDialog. Об‘ява для елементів керування змінних властивостей класу:

- змінні другої категорії Control – CEdit m_text, що забезпечують прямий доступ до елементів керування.

2.Ініціалізація змінних властивостей класу:

m_text=_T();

m_List=_T();

3.Обмін даними з елементами діалога

void CMyDialog::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

   DDX_Text(pDX,IDC_EDIT,m_text);

   DDX_LBString(pDX,IDC_LIST,m_List);

}

4.Організація результатів виконання діалогу після натиснення кнопок OK, Cancel

void CMyDialog::OnOK()            void CMyDialog::OnCancel()

5.Організація ініціалізації елементів керування за допомогою функції OnInitDialog():

CDialog::OnInitDialog();

  CListBox* p=(CListBox*)GetDlgItem(IDC_LIST);

  p->AddString("6");

  p->AddString("3");

  p->AddString("5");

6.Відтворення карти повідомлень:

BEGIN_MESSAGE_MAP(CPashaWnd, CFrameWnd)

ON_COMMAND(ID_INPUT, OnInput)

ON_COMMAND(ID_INFO, OnInfo)

END_MESSAGE_MAP();

7.Створення об‘єкту діалогового вікна і його відображення:

CMyDialog dialog(this);

dialog.DoModal();

8.Створення функцій обробки результатів, що отримали з діалогового вікна.




Робота з графікою

Для графічного відображення результатів використовуються стандартні бібліотечні функції та класи. В WINDOWS для виведення графіки потрібно використовувати контексти пристроїв:

- CDС – базовий клас DС, на основі якого створюються інші пристрої;

- CClientDC – виведення в робочу частину вікна;

- CPaintDC - визначення вікна, яке потрібно перерисовувати;

- CWindowDC - виведення на всю область вікна;

Основними інструментами, що використовуються в даній програмі є:

Pen – перо. Brush – пензель.. Color – логічний колір.

Для застосування цих інструментів їх потрібно створити та ініціалізувати. Створення та ініціалізація в даній курсовій роботі має слідуючий вид:

dc.SelectObject (&Pen3) – ініціалізація власних типів пер.

dc.SelectObject (&Вrush) – ініціалізація власного типу пензля.

Створення власних пер: Pen1 = Create Pen(PS_DOT,2,RGB(255,0,0)),

Pen2 = Create Pen(PS_SOLID,2,RGB(255,0,0)),

Pen3 = Create Pen(PS_DASH,2,RGB(255,0,0))..

Створення власного пензля: Brush. Create SolidBrush(RGB(0,255,255)).

Створення власних кольрів:RGB(n1, n2, n3), ni = 0-255,

RGB(255, 0, 0) – червоний, RGB(0, 0, 0) – чорний.

Спочатку потрібно об‘явити ці інструменти:

 CPen pen1; CBrush brush1;



Висновки.

Даний курсова робота в деякій мірі розкриває можливості мови С++ пакету Visual C++ 6.0. тут можна побачити перевиги даного пакету над іншими як у вирішенні різного роду задач так і у інтерфейсі.

Так, як програма складається з окремих модулів, то кожний модуль можна використовувати для реалізації інших подібних програм, які необхідно виконати в стислий термін.

Таким чином, програмування на Visual C++ 6.0 та Assembler відкриває перед програмістом безмежну кількість варіантів та можливостей реалізації поставлених задач, а це досить важливо сьогодні, так як комп’ютери та комп’ютерні мережі та системи стали застосовуватись практично у всіх галузях народного господарства.

При вивченні основних можливостей Visual C++ 6.0 та об’єктно-орієнтованого програмування з використанням MFC – бібліотеки було встановлено і розглянуто частину принципово нових можливостей реалізації графічного інтерфейсу та модульного програмування, які є досить ефективні і мобільні.

Завдяки поєднанню програм на Visual С++ і Асемблері можна створити програму високого рівня, тобто програму, яка відповідає світовим стандартам по оформленню, швидкодії та іншим параметрам.

Створена система меню може застосовуватись не лише для реалізації поставленої задачі, а й для будь-якої іншої програми, тому що зміна пунктів меню, зовнішнього вигляду, виконання процесу робиться досить швидко і без будь-яких ускладнень.



Література

  Абель П. Язык Ассемблера для IBM PC и программирование.–.М.:Высш. Шк.,1992.–447 с.

 Гладков, Фролов Програмирование в Windows Microsoft

Мешков, Тихомиров Visual C++ MFC 3том.

 Тихомиров Visual C++ 6.0 1999г. С.-П.

Марк Луис Visual C++. Москва 1995г.

Кейт Грегори Использованиие Visual C++ 6.0 М. “Издательский дом Вильямс” 2000.- 864 c.  



Створення меню.

В даній курсовій роботі меню має вигляд, що показаний в завданні. Меню являється найпростішим ресурсом, що забезпечує нам зручну роботу з програмою, служить візуальним помічником.

Типи повідомлень в бібліотеці MFC розподіляють:

1. Повідомлення Windows (WM_WindowsMessage).

2. Повідомлення від дочірніх вікон та кнопок – елементів керування.

3. Командні повідомлення – від меню та панелей інструментів.

Наведемо приклад обробки повідомлень від меню, що здійснюється в даній програмі.

DECLARE_MESEEAGE_MAP () – таблиця реакцій, якя зв‘язує вибір команди меню з відповідною функцією обробки;

class CPashaWnd:public CFrameWnd

{

public:

    CPashaWnd();

protected:

protected:

afx_msg void OnOpen();      

afx_msg void OnSaveAs();

afx_msg void OnQuit();

     afx_msg void OnDelete();

     afx_msg void OnPaint();

   afx_msg void OnInput();

   afx_msg void OnHelp();

     afx_msg void OnRun();

     afx_msg void OnResult();

     afx_msg void OnInfo();

    DECLARE_MESSAGE_MAP()

};

 

BEGIN_MESSAGE_MAP(CPashaWnd, CFrameWnd)

ON_COMMAND(ID_OPEN,OnOpen)   

ON_COMMAND(ID_SAVE,OnSaveAs)

ON_COMMAND(ID_DELETE,OnDelete)

ON_COMMAND(ID_QUIT,OnQuit)

ON_COMMAND(ID_INPUT,OnInput)

ON_COMMAND(ID_HELP,OnHelp)

ON_COMMAND(ID_RUN,OnRun)

ON_COMMAND(ID_INFO,OnInfo)

ON_COMMAND(ID_RESULT,OnResult)

ON_WM_PAINT()

END_MESSAGE_MAP();

 

void CPashaWnd::OnInput()

{

}

void CPashaWnd::OnHelp()

{

}

void CPashaWnd::OnRun()

{

}

void CPashaWnd::OnResult()

{

}

void CPashaWnd::OnInfo()

{

}

CPashaWnd::CPashaWnd()

{

    Create(NULL,"My program",

      WS_OVERLAPPEDWINDOW,rectDefault,NULL,  

              MAKEINTRESOURCE(IDR_MENU1)); };


7.Робота з файлами в Visual C++6.0

Зручний багатофункціональний інтерфейс даної роботи передбачає також і роботу з файлами, їх зберігання, відкриття, знищення, що є зручним для користувача. Робота з файлами здійснюється за допомогою бібліотеки <iostream.h>.

Всі функції роботи з файлами знаходяться в меню в пункті File:

Open Save Delete

Вибираємо потрібну нам функцію та файл, з яким будемо працювати за допомогою миші.

В змінній DlgOpen.GetPathName зберігається ім‘я файлу.

Функції реалізовані слідуючим чином: Open

void CPashaWnd::OnOpen()

{

CString m_Text;

 створення стандартної панелі вибору файлу Open

        CFileDialog DlgOpen(TRUE,(LPCSTR)"*",NULL,

    OFN_HIDEREADONLY,(LPCSTR)" ALL Files (*.*) |*.*||");



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: