ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Проста програма, що використовує MDI інтерфейс
         

     

    Інформатика, програмування

    Проста програма, що використовує MDI інтерфейс

    У цьому розділі розглядається програма використовує MDI (інтерфейс багатьох документів)

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

    Створення проекту програми

    1. Створіть новий проект (у мене MDI), що використовує MDI інтерфейс з підтримкою MFC. Всі шість кроків у MFC AppWizard залиште без зміни.

    2. Якщо ви зробили все правильно, то створяться п'ять класів: CMDIApp, CMainFrame, CChildFrame, CMDIDoc і CMDIView. У класі документів CMDIDoc ви пишете код для підтримки даних програми, а в класі подання CMDIView - код, який відповідає за те, що ви бачите на екрані. Ви будете писати код у функціях-елементах тільки цих двох класів.

    3. Оголошуємо елементи даних класу документа. Їх буде два: координати кола по X і Y. Для цього відкриваємо файл CMDIDoc.h і змінюємо оголошення класу CMDIDoc наступним чином:

    class CMDIDoc: public CDocument (protected:

    // create from serialization only CMDIDoc (); DECLARE_DYNCREATE (CMDIDoc)// Attributes public: int m_X;// координати кола по x int m_Y;

    // координати кола по y// Operations ... ...

    4. Оголошуємо елементи даних класу подання. Їх буде теж дві: координати кола по X і Y. Для цього відкриваємо файл CMDIView.h і змінюємо оголошення класу CMDIView наступним чином:

    class CMDIView: public CView (protected:

    // create from serialization only CMDIView (); DECLARE_DYNCREATE (CMDIView)// Attributes public: CMDIDoc * GetDocument (); int m_X;

    // координати кола по x int m_Y;

    // координати кола по y// Operations ... ...

    Як ви бачите, імена змінних можуть збігатися ( зазвичай так і робиться).

    5. Ініціалізіруем елементи даних класу документа. Для цього відкрийте файл MDIDoc.cpp, знайдіть у ньому функцію OnNewDocument () і напишіть в неї наступний код:

    BOOL CMDIDoc:: OnNewDocument () (if (! CDocument:: OnNewDocument ()) return FALSE; m_X = 100;// початкове положення по X = 100 m_Y = 100;

    // початкове положення по Y = 100

    // TODO: add reinitialization code here// (SDI documents will reuse this document) return TRUE;)

    6. Ініціалізіруем елементи даних класу подання. Для цього потрібно створити функцію-елемент OnInitialUpdate () класу подання:

    Виберіть ClassWizard в меню View. На сторінці Message Maps виберіть наступні події:

    Class neme: CMDIView Object ID: CMDIView Message: OnInitialUpdate

    та натисніть Add Function

    Напишіть наступний код у функцію OnInitialUpdate ():

    void CMDIView:: OnInitialUpdate () (CView:: OnInitialUpdate ();

    // TODO: Add your specialized code here and/or call the base class CMDIDoc * pDoc = GetDocument ();

    // отримати покажчик на документ

    // оновити елементи даних подання

    // відповідними значеннями документа. m_X = pDoc-> m_X; m_Y = pDoc-> m_Y; pDoc-> SetTitle ( "ANDY");

    // всіх документів дається назва ANDY)

    7. Тепер напишемо код для виводу кола на екран.

    Функція OnDraw () класу подання автоматично виконується кожного разу, коли потрібно вивести вікно документа.

    Напишіть наступний код у функції OnDraw ():

    void CMDIView:: OnDraw (CDC * pDC) (CMDIDoc * pDoc = GetDocument (); ASSERT_VALID (pDoc);

    // TODO: add draw code for native data here pDC-> Ellipse (m_X - 20, m_Y - 20, m_X + 20, m_Y + 20);

    // малюємо коло діаметром 20)

    8. Напишемо код для збереження і зчитування даних з файлу.

    Відкрийте файл MDIDoc.cpp, знайдіть у ньому функцію Serialize () і змініть її:

    void CMDIDoc:: Serialize (CArchive & ar) (if (ar.IsStoring ()) (

    // TODO: add storing code here (це виконується,

    якщо вибрати SAVE) ar <

    // записуємо m_X у вибраний файл ar <

    // записуємо m_Y у вибраний файл) else (

    // TODO: add loading code here (це виконується,

    якщо вибрати OPEN) ar>> m_X;

    // зчитуємо значення з обраного файлу в m_X ar>> m_Y;

    // зчитуємо значення з обраного файлу в m_Y))

    9. Часто буває потрібно змінити деякі параметри програми, такі як заголовок головного вікна або тип файлу за замовчуванням, який виводиться у діалогових панелях SAVE і OPEN. Для цього потрібно вибрати закладку ResourceView і відкрити пункт String Table. Ви побачите список змінних проекту (три колонки: ID, Value і Caption).

    IDR_MAINFRAME - заголовок головного вікна (змінюється в полі Caption)

    IDR_MCIRCLTYPE - тип файлу за замовчуванням, ви побачите 6 підрядка розділеними знаком n. Третя і четверта підрядка визначають тип документа за замовчуванням. У мене CIR FILES (*. cir) і. Cir відповідно. Ви можете поставити свої значення.

    10. Тепер створимо кнопку в панелі інструментів. Для цього потрібно вибрати закладку ResourceView і відкрити пункт Toolbar. Ви побачите панель інструментів у режимі редагування. Натисніть на саму праву кнопку ( пунктирна квадрат), нижче намалюйте кнопку на ваш розсуд. Тепер двічі натиснете на вашу кнопку і введіть ID: ID_MYBUTTON і Prompt: Зміна координат кругаnІзмененіе координат кола. Ну от і все, кнопка готова. Тепер потрібно створити функцію, яка буде виконуватись при натисканні на вашу кнопку:

    Виберіть пункт меню View далі ClassWizard, виберіть закладку Message Maps, Project: MDI, Class name: CMDIView, Object IDs: ID_MYBUTTON, Message: COMMAND та натисніть Add Function. У відповідь створиться функція void CMDIView:: OnMybutton ().

    11. Тепер за аналогією з розділом 15 створимо власне діалогове вікно з ID: IDD_MY_DIALOG і класом CMyDialog і розмістимо в ньому чотири Edit Box зі змінними типу INT: m_DX - поточна позиція по X, m_DY - Поточна позиція по Y, m_DXN - нова позііція по X, m_DYN - нова позііція по Y. Не забудьте написати # include "MyDialog.h" у файлах MDIDoc.cpp і MDIView.cpp.

    12. Тепер напишемо код у функції OnMybutton ().

    void CMDIView:: OnMybutton () (

    // TODO: Add your command handler code here CMDIDoc * pDoc = GetDocument ();

    // отримуємо покажчик на документ CMyDialog MyD;

    // створюємо змінну класу CMyDialog MyD.m_DX = MyD.m_DXN = pDoc-> m_X;

    // ініціалізмруем змінні діалогу MyD.m_DY = MyD.m_DYN = pDoc-> m_Y;.

    // MyD.DoModal ();

    // створюємо новий діалог pDoc-> m_X = MyD.m_DXN;

    // отримуємо нові значення pDoc-> m_Y = MyD.m_DYN;

    // OnInitialUpdate ();

    // синхронізуємо дані Invalidate (TRUE );

    // перемальовує екран (виклик OnDraw ()) pDoc-> SetModifiedFlag ();

    // ставимо прапор зміни документа)

    13. Ну от і все, програма готова. Звідси можна взяти робочу програму, що використовує MDI, в якій використовується власне діалогове вікно.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.realcoding.net/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status