Четвер, 25.04.2024
Творча лабораторія

Навчальні посібники та робочі зошити з інформатики - якісно і дешево


Меню сайту
Реклама
Категорії каталогу
MS Visual C++ 2005 Express Edition [3]
Середовища програмування [8]
Особливості встановлення та використання різних середовищ програмування
MS Visual Basic 6 [1]
Microsoft Visual Basic
C# [8]
Програмування мовою C#
C++ [3]
Паскаль [5]
ЛОГО [1]
Олімпіадне програмування [0]
Python [1]
Головна » Статті » Програмування » Середовища програмування

Детальний приклад використання wxDev-C++ (закінчення)

Нові статті

[19.02.2020] [C#]
Задача про розрізання квадрата (ООП, C#)
[09.02.2020] [Python]
Задача про розрізання квадрата (ООП, Python)
[06.02.2020] [Паскаль]
Задача про розрізання квадрата (ООП, Free Pascal)

Детальний приклад використання wxDev-C++ (частина 3 з 3)

Автор Dan Koga (Читати оригінал статті "Extended wxDev-C++ Tutorial" на сайті http://wxdsgn.sourceforge.net)

Переклав Пилипчук О.П.

Читати першу частину
Читати другу частину

Панель інструментів

В цьому уроці ми додамо панель інструментів з кнопкаи для операцій Cut (вирізати), Copy (копіювати) та Paste (вставити).

Щоб додати панель інструментів:

1. Переконайтесь, що виділена форма. Оберіть Toolbar в Control Filter.

2. Клацніть ToolBar в списку елементів керування, а потім - у вікні програми.



3. Змініть властивість IDName на ID_TOOLBAR.

4. Змініть властивість Name на m_pToolbar.

Скопіюйте перелічені файли з C:\Dev-Cpp\wx\samples\toolbar\bitmaps до каталогу з вашим проектом TidyText:

- cut.bmp

- copy.bmp

- paste.bmp

Ці малюнки будуть використані для кнопок.

Щоб додати кнопку на панель інструментів:

1. Клацніть ToolButton у списку елементів керування, а потім - на панелі інструментів.

2. Оберіть властивість Active Bitmap, а потім клацніть кнопку з трьома крапками.

2. Використайте Picture Editor щоб завантажити малюнок cut.bmp.

2. Змініть такі властивості:

- IDName на ID_TB_CUT.

- IDValue на таке ж значення, як у ID_EDIT_CUT.

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

- Label на Cut.

- ToolTip на Cut Ctrl+X

Підказка: Щоб під кнопкою відображався підпис (Label), змініть wxTB_TEXT Toolbar Style на True.

Повторіть пеопередні кроки, щоб додати кнопки Copy та Paste.



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

Відкомпілюйте та запустіть програму, перевірте дію кнопок редагування. Перегляньте файли з програмним кодом, щоб побачити, який код wx-Devcpp додав для підтримки панелі інструментів та кнопок.

Буфер обміну

Щоб отримати доступ до буфера обміну, скористаємось двома wxWidgets-класами: wxClipboard та wxTextDataObject. Середовище підтримує глобальний примірник класу Буфер обміну - wxTheClipboard. Ми передаватимемо у wxTheClipboard об'єкт типу wxTextDataObject, який отримуватиме текст з буфера обміну або міститиме текст для вміщення до буфера.

Перш за все, нам потрібен елемент підменю та інструментальна кнопка для вибору команди очищення тексту в буфері обміну. Додамо елемент до меню Edit. Ви можете обрати власний малюнок для кнопки на панелі інструментів або використати цей .

Зміна меню Edit:

1. Відкрийте редактор меню та виберіть меню Edit.

2. Виберіть Create Submenu (Створити підменю).

3. Виберіть Seperator у розкривному списку Type (Тип).



4. Виберіть Apply.

5. Виберіть Create Submenu.

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

- Caption: C&lean Clipboard\tCtrl+T.

- ID Name: ID_EDIT_CLEAN_CLIPBOARD.

- Hint: Clean clipboard contents.

- Bitmaps: клацніть Browse та завантажте зображення зірки.

- OnMenu handler: OnCleanClipboard.

- OnUpdateUI handler: OnUpdateUICleanClipboard

7. Клацніть Apply, потім OK.

Зверніть увагу, що ми додали малюнок до елемента підменю.

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

1. Виберіть Toolbar у Control Filter.

2. Виберіть Separator у списку елементів керування, потім клацніть панель інструментів.



3. Виберіть ToolButton у списку елементів керування, потім клацніть панель інструментів.

4. Завантажте зображення зірки для кнопки.

5. Змініть такі властивості:

- IDName: ID_TB_CLEAN_CLIPBOARD

- IDValue: таке ж знгачення, як для підменю Clean Clipboard.

- Label: Clean

- ToolTip: Clean clipboard

Необхідно додати програмний код до файлу TidTextFrm.cpp.

#include <wx/clipbrd.h>

#include <wx/dataobj.h>

#include <wx/string.h>

Переконайтесь, що рядки додані за межами блоку директив include згенерованих wx-Devcpp.

Додайте такий рядок до OnUpdateUICleanClipboard:

event.Enable(wxTheClipboard->IsSupported(wxDF_TEXT));

Додайте такі рядки до OnCleanClipboard:

if (wxTheClipboard->Open())

{

// Отримати текст з буфера обміну

wxTextDataObject textData;

wxTheClipboard->GetData(textData);

wxTheClipboard->Close();



// Очистити текст

wxString text(textData.GetText());

text.Replace(">", "");



// Показати очищений текст у текстовому полі та помістити його

// в буфер обміну.

m_pEditControl->SetValue(text);

m_pEditControl->Copy();

}

Відкомпілюйте та запустіть програму. Помістіть довільний текст до буфера обміну та очистіть його.

Діалогове вікно

У цьому останньому уроці ми побудуємо просте діалогове вікно, яке дозволить користувачеві ввести символи для видалення з тексту, що в буфері обміну.

Щоб створити нове діалогове вікно:

1. Виберіть File | New | New wxDialog.

2. У діалоговому вікні New wxWidgets Form виберіть Yes, щоб додати його до проекту.

3. У діалоговому вікні Create New wxWidgets Dialog:

- Class Name: OptionsDlg

- File name: OptionsDlg

- Title: Options Dialog

- Default Style: Uncheck Min Button

4.Виберіть Create.

Зауваження: У вікні редагування wx-Devcpp форма містить кнопки системного меню, згортання, розгортання та закривання, незалежно від обраного стилю.

- Змініть властивість IDName на ID_OPTIONS_DLG

Додайте елементи керування до вікна Options Dialog:

1. Виберіть Controls у Control Filter.

2. Додайте елемент керування StaticText у лівому верхньому куті.

3. Змініть  властивість Label на Remove characters:.

4. Нижче додайте елемент керування Edit.

5. Змініть властивість Font на Arial 10 пунктів.

6. Видаліть значення властивості Text.

7. Додайте елемент керування Button під текстовим полем.

8. Змініть властивість &Default на True, властивість IDName на wxID_OK,  властивість IDValue на 5100, властивість Label на OK

Зауваження: wxID_OK - стандартний ідентифікатор, що надається wxWidgets. Його значення встановлене рівним 5100.

9. Додайте елемент Button поряд з кнопкою OK.

10. Змініть властивість IDName на wxID_CANCEL, властивість IDValue на 5101 та властивість Label на Cancel.

Після цього форма Options Dialog виглядатиме приблизно так:

Необхідно додати пункт меню та код для відображення діалогу.

Додання підтримки діалогу:

1. Додайте підменю Options до меню Edit та створіть обробник події OnEditOptions.

2. Введіть у функцію-обробник такий код:

OptionsDlg optionsdlg(this);
optionsdlg.WxEdit1->SetValue(m_RemoveChars);
if (optionsdlg.ShowModal() == wxID_OK)
m_RemoveChars = optionsdlg.WxEdit1->GetValue();


3. Додайте до класу TidyTextFrm змінну-член m_RemoveChars типу wxString.

4. Ініціалізуйте її значенням ">".

Нарешті, потрібно модифікувати обробник події OnCleanClipboard, щоб видалявся кожен з символів m_RemoveChars, а не цілий рядок. В OnCleanClipboard замініть рядок

text.Replace(">", "");

таким кодом

if (!m_RemoveChars.IsEmpty())
{
wxString str;
for (size_t index = 0; index < m_RemoveChars.Len(); index++)
{
str = m_RemoveChars[index];
text.Replace(str.c_str(), "");
}
}

Відкомпілюйте та запустіть програму.

Сподіваюсь, цей приклад допоміг зробити перші кроки в опануванні wx-Devcpp та wxWidgets.



Интернет реклама
Категорія: Середовища програмування | Додав: teachlab (28.05.2009)
Переглядів: 2656 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть тільки зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу
Пошук
Друзі сайту

Підтримка

Система Orphus

Маєте свій сайт?
Заробіть на ньому грошей!


Не маєте власного сайту?
Заробіть на обміні файлами!
Статистика
Copyright Пилипчук О.П. © 2024
div id=