4.36.3.4 - Структура FINDREPLACE

Структура FINDREPLACE содержит информацию, которую используют функции FindText и ReplaceText, чтобы инициализировать стандартные диалоговые окна Найти (Find) и Заменить (Replace). Зарегистрированное сообщение FINDMSGSTRING использует эту структуру, чтобы передать вводимые данные пользователем для поиска или замены в окно владельца стандартного блока диалога Найти (Find) или Заменить (Replace).

Синтаксис

typedef struct {    				
	DWORD lStructSize;
	HWND hwndOwner;
	HINSTANCE hInstance;
	DWORD Flags;
	LPTSTR lpstrFindWhat;
	LPTSTR lpstrReplaceWith;
	WORD wFindWhatLen;
	WORD wReplaceWithLen;
	LPARAM lCustData;
	LPFRHOOKPROC lpfnHook;
	LPCTSTR lpTemplateName;
} FINDREPLACE;

Элементы
lStructSize
Определяет длину структуры в байтах.
hwndOwner
Идентифицирует окно, которое владеет диалоговым окном. Оконная процедура определяемого окна принимает сообщения FINDMSGSTRING от блока диалога. Этот элемент может быть любым допустимым дескриптором окна, но он не должен быть со значением ПУСТО (NULL).
hInstance
Если в элементе Flags установлен флажок FR_ENABLETEMPLATEHANDLE, hInstance - дескриптор объекта памяти, содержащего шаблон диалогового окна. Если установлен флажок FR_ENABLETEMPLATE, hInstance идентифицирует модуль, который содержит шаблон диалогового окна, именованный элементом lpTemplateName. Если установленных флажков нет, этот элемент игнорируется.
Flags
Установка битов флажков, которые вы можете использовать, чтобы инициализировать диалоговое окно. Блок диалога устанавливает эти флажки, когда он передает зарегистрированное сообщение FINDMSGSTRING, чтобы обозначить ввод данных пользователем. Этот элемент может быть комбинацией следующих флажков:

lpstrFindWhat
Указатель на буфер, который использует сообщение FINDMSGSTRING для передачи строки для поиска с нуль-терминатором в конце, которую пользователь набрал в редактируемом поле " То, что искать:". Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия до того, как диалоговое окно закроется. Буфер должен быть, по крайней, мере длиной 80 символов. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле " То, что искать:".
Если сообщение FINDMSGSTRING определяет, флажок FR_FINDNEXT, элемент lpstrFindWhat содержит строку, которую надо искать. Флажки FR_DOWN, FR_WHOLEWORD и FR_MATCHCASE указывают направление и тип поиска. Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACE, элемент lpstrFindWhat содержит строку, которая будет заменена.
lpstrReplaceWith
Указатель на буфер, который использует сообщение FINDMSGSTRING, чтобы передать строку замены с нуль-терминатором в конце, которую пользователь ввел с клавиатуры в редактируемое поле "Заменить на: (Replace With)". Вы должны динамически распределить буфер или использовать глобальный или статический массив, так чтобы он не выходил из области действия прежде, чем диалоговое окно закроется. Если буфер содержит строку, когда вы инициализируете диалоговое окно, строка отображается в редактируемом поле "Заменить на: (Replace With)".
Если сообщение FINDMSGSTRING определяет флажки FR_REPLACE или FR_REPLACEALL, lpstrReplaceWith содержит строку замены.
Функция FindText игнорирует этот элемент.
wFindWhatLen
Устанавливает длину, в байтах, буфера, указанного элементом lpstrFindWhat.
wReplaceWithLen
Устанавливает длину, в байтах, буфера, указанного элементом lpstrReplaceWith
lCustData
Устанавливает определяемые программой данные, которые система передает в фильтр - процедуру, идентифицированную при помощи элемента lpfnHook. Когда система посылает сообщение WM_INITDIALOG фильтр - процедуре, параметр сообщения lParam - указатель на структуру FINDREPLACE, определенную, когда диалоговое окно было создано. Фильтр - процедура может использовать этот указатель, чтобы получить значение lCustData.
lpfnHook
Указатель на фильтр - процедуру FRHookProc, которая может обрабатывать сообщения, предназначенные для диалогового окна. Этот элемент игнорируется, если в элементе Flags не установлен флажок FR_ENABLEHOOK.
Если фильтр - процедура в ответ на сообщение WM_INITDIALOG возвращает значение ЛОЖЬ (FALSE), она должна показать на экране диалоговое окно, а не то диалоговое окно не будет показано на экране. Чтобы сделать это, сначала выполняют любые другие действия рисования, а затем вызывают функции ShowWindow и UpdateWindow.
lpTemplateName
Указатель на строку с символом нуля в конце, которая именует ресурс шаблона диалогового окна в модуле, идентифицированном элементом hInstance. Этот шаблон заменяет стандартный шаблон диалогового окна. Для пронумерованных ресурсов диалогового окна, это может быть значение, возвращенное макрокомандой MAKEINTRESOURCE. Этот элемент игнорируется, если в элементе Flags не установлен флажок FR_ENABLETEMPLATE.

Смотри также
FindText, FRHookProc, MAKEINTRESOURCE, ReplaceText, ShowWindow, UpdateWindow, WM_INITDIALOG

Размещение и совместимость DEVNAMES

Windows NT			Да 
Win95				Да 
Win32s				Да 
Импортируемая библиотека	 	- 
Заголовочный файл			commdlg.h 
Уникод				Нет 
Замечания по платформе		Не имеется

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 19.04.2002