Текстовий редактор - інформатика, програмування

4. Опис роботи програми

6. Список використаних джерел

На початку сімдесятих консорціум дуже розумних людей розробляв комп'ютерну систему Muitix. Вона була призначена забезпечення недорогого загального доступу до графічних, текстових та інших файлів. Звичайно, це була абсолютно дурна ідея, і в цілому проект провалився. Невелика група інженерів, що працюють в лабораторіях Белла, вирішила використовувати фрагменти Muitix в невеликій операційній системі, яку охрестили Unix.

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

Мова С виявився дійсно потужним і дуже скоро завоював передові позиції серед засобів розробки програмного забезпечення. Однак з часом в програмуванні з'явилися нові технології (наприклад, гідне найбільшої уваги об'єктно-орієнтоване програмування), які поступово витісняли мову С. Аби не допустити залишитися за бортом, інженерне співтовариство вдосконалив С, доповнивши його новими можливостями і отримавши в результаті нову мову програмування C ++ . Мова C ++ включає:

· Словник зрозумілих для людей команд, які конвертуються в машинну мову;

· Структуру мови (або граматику), яка дозволяє користувачам складати з команд працюють програми.

2. РОБОТА з текстовими документами

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

Об'єкт класу CEdit забезпечує функціонування елемента управління текстового поля Windows. Текстове поле Windows являє собою прямокутне дочірнє вікно, в яке користувач може вводити текст. Даний елемент управління може створюватися в шаблоні діалогу або безпосередньо в програмі користувача. В обох випадках спочатку викликається конструктор класу CEdit, що створює об'єкт даного класу, а потім викликається функція Create, що створює текстове поле Windows і зв'язує його з об'єктом класу CEdit. Об'єкт класу, похідного від класу CEdit може бути створений за один крок, якщо в його конструкторі буде викликана функція Create. Об'єкт класу CEdit успадковує багато можливостей об'єкта класу CWnd. Щоб записати текст в об'єкт класу CEdit, використовується функція CWnd :: SetWindowText, а щоб вважати його звідти використовується функція CWnd :: GetWindowText. Ці функції дозволяють записати або вважати весь текст, що міститься в даному елементі управління навіть в тому випадку, коли він є багаторядковим. У тому випадку, якщо даний елемент управління є багаторядковим, в ньому можуть використовуватися такі функції для роботи з частиною міститься в ньому тексту: CEdit :: GetLine, CEdit :: SetSel,

CEdit :: GetSel і CEdit :: ReplaceSel. Щоб обробити повідомлення, що посилається текстовим полем свого батьківського вікна (зазвичай це об'єкт класу, похідного від CDialog), додайте відповідний макрос в карту повідомлень і створіть функцію для обробки даного повідомлення. Макрос карти повідомлень для даного типу повідомлень має такий вигляд:

де id - ідентифікатор дочірнього вікна елемента керування, що посилає повідомлення, а memberFxn - ім'я функції обробки даного повідомлення в класі батьківського вікна. Прототип функції обробки повідомлення має такий вигляд:

afx_msg void memberFxn ();

Нижче наведено список макросів карти повідомлень, які можуть використовуватися для обробки повідомлень, що посилаються даними елементом управління:

ON_EN_CHANGE - користувач зробив дію, яке може привести до зміни тексту, що міститься в текстовому полі. На відміну від повідомлення EN_UPDATE дане повідомлення надсилається після того, як Windows зробить оновлення екрану;

ON_EN_ERRSPACE - для даного текстового поля не може бути виділений необхідний для нього обсяг пам'яті;

ON_EN_HSCROLL - користувач скористався горизонтальною смугою прокрутки даного елемента управління. Повідомлення надсилається батьківському вікну до оновлення екрану;

ON_EN_KILLFOCUS - це текстове поле втратило фокус введення;

ON_EN_MAXTEXT - поточна вставка привела до перевищення певного в даному об'єкті максимального числа символів, що призвело до її урізання. Дане повідомлення надсилається також у тому випадку, якщо текстове поле не має стилю ES_AUTOHSCROLL, а кількість символів в поточному рядку перевищує ширину текстового поля. Іншим випадком, коли посилається дане повідомлення, є випадок, коли текстове поле не має стилю ES_AUTOVSCROLL, а кількість рядків в ньому перевищує висоту текстового поля, або ж текстове поле не має стилю ES_AUTOHSCROLL, а кількість символів в поточному рядку перевищує ширину текстового поля;

ON_EN_SETFOCUS - це текстове поле отримало фокус введення;

ON_EN_UPDATE - в текстовому полі буде виводитися змінений текст. Надсилається після того, як елемент управління отформатирует текст, але до того, як цей текст буде виведений в текстове поле, що дозволяє змінити розміри текстового поля в разі потреби;

ON_EN_VSCROLL - користувач скористався вертикальною смугою прокрутки даного елемента.

При створенні об'єкта класу CEdit в діалоговому вікні цей об'єкт автоматично знищується при закритті діалогового вікна. Те ж саме відбувається і в тому випадку, коли об'єкт класу CEdit створюється в шаблоні діалогу. Якщо об'єкта класу CEdit створюється у вікні, то від користувача може знадобитися його знищити. Якщо ж об'єкт класу CEdit створюється в стеці, то він знищується автоматично. При створенні об'єкта класу CEdit в купі з використанням оператора new його необхідно знищити після завершення роботи користувача з елементом управління Windows з використанням оператора delete. Якщо в об'єкт класу, похідного від CEdit, була розподілена будь-яка пам'ять, то необхідно перевантажити деструктор даного класу таким чином, щоб він звільняв цю пам'ять. Опис даного класу міститься в файлі заголовка afxwin.h.

Читати далі: ОПИС РОБОТИ ПРОГРАМИ

Текстовий редактор - інформатика, програмування

Схожі статті