Шаг 69 - Диалоговое окно для поиска в CEditView

Создание проекта

В прошлом шаге мы с Вами создали поиск. Теперь пора приготовить диалоговое окно для ввода строки поиска. Берите предыдущий проект и вперед. Нам нужно добавить диалоговое окно к проекту как мы это делали в шаге 9. Теперь нам нужно поменять заголовок окна. Для этого вызываем свойства диалогового окна и меняем свойства Caption.

96_1.gif (10292 b)

Теперь нам нужно поместить на диалоговое окно элемент управления Edit.

96_2.gif (2078 b)

После создания диалогового окна и расположения элементов управления для создания нового класса можно сделать двойной щелчок на панели диалогового окна. По нему будет создан класс на основе данного диалогового окна. Появится диалоговое окно Create New Class , здесь нужно согласиться, ввести имя нового класса и в ClassView появиться наш класс.

96_3.gif (12554 b)

После всех приготовлений мы можем связать элемент управления диалогового окна, используя механизм DXX с переменной, только сначала её нужно создать. Запускайте ClassWizard, выбирайте вкладку Member Variables. Идентификатор строки редактирования будет иметь имя IDC_EDIT1 свяжем его с переменной типа CString. Это мы уже делали в шаге 30.

Создаем код

Подключаем описание класса диалогового окна поиска к реализации вида.

// MyEditView.cpp : implementation of the CMyEditView class
//

..............
#include "MyEditDoc.h"
#include "MyEditView.h"
#include "TestFindDialog.h"

Меняем функцию реакции на вызов поиска.

void CMyEditView::OnFind() 
{
CTestFindDialog cd(this); // объект нашего класса
if (cd.DoModal()==IDOK) // если в окне нажали OK
{
FindText(cd.m_Search,TRUE); // искать текст
}
}

Вот она, в работе милая.

96_4.gif (6428 b)

Описание

Для того что улучшить поиск мы с Вами создали класс диалогового окна. Этот класс можно создавать на основе диалога в ресурсах. VC++ это делает автоматически. В дальнейшем нам надо подключить его и использовать.

И еще один момент. Не ищите, пустую строку или обрабатывайте ошибку.

Шпаргалка

Вы можете расширить интерфейс стандартных элементов управления, создав свои диалоги для передачи параметров.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 17.11.99 (обновлено 23.07.2001)