Win32 API. Библиотека стандартных диалоговых окон - Зарегистрированное сообщение FINDMSGSTRING
ОГЛАВЛЕНИЕ
Зарегистрированное сообщение FINDMSGSTRING
Перед созданием диалогового окна Найти (Find) или Заменить (Replace). Вы должны вызвать функцию RegisterWindowMessage, чтобы получить идентификатор зарегистрированного сообщения FINDMSGSTRING. Вы можете затем использовать этот идентификатор, чтобы определять и обрабатывать сообщения, посылаемые из диалогового окна. Когда пользователь щелкает мышью по кнопке диалогового окна Искать дальше… (Find Next), Заменить (Replace) или Заменить все (Replace All), процедура диалогового окна передает сообщение FINDMSGSTRING в оконную процедуру окна владельца. Когда вы создаете диалоговое окно, элемент hwndOwner структуры FINDREPLACE идентифицирует окно владельца.
Параметр lParam сообщения FINDMSGSTRING указывает на структуру FINDREPLACE, которую вы определили, когда создавали диалоговое окно. Перед передачей сообщения, диалоговое окно устанавливает элементы этой структуры с самыми последними введенными пользователем данными, включая последовательность символов для поиска, замены этой последовательности (если она имеется) и параметрами для операции поиска-замены.
В сообщении FINDMSGSTRING элемент Flags структуры FINDREPLACE включает в себя один из ниже перечисленных флажков, чтобы указать на событие, которое вызвало сообщение:
- FR_DIALOGTERM - Диалоговое окно закрывается. После того как окно владелец обработает это сообщение, дескриптор диалогового окна далее не будет корректным.
- FR_FINDNEXT - Пользователь щелкнул мышью по кнопке Искать дальше (Find Next) в диалоговом окне Найти (Find) или Заменить (Replace). Элемент lpstrFindWhat определяет последовательность символов для поиска.
- FR_REPLACE - Пользователь щелкнул мышью по кнопке Заменить (Replace) в диалоговом окне Заменить (Replace). Элемент lpstrFindWhat устанавливает последовательность символов, которую надо заменить, а элемент lpstrReplaceWith устанавливает последовательность символов, на которую надо заменить.
- FR_REPLACEALL - Пользователь щелкнул мышью по кнопке Заменить все (Replace All) в диалоговом окне Заменить (Replace). Элемент lpstrFindWhat устанавливает последовательность символов, которую надо заменить, а элемент lpstrReplaceWith устанавливает последовательность символов, на которую надо заменить.
Для сообщения Искать дальше (Find Next) или Заменить все (Replace All) элемент Flags может включать любую комбинацию ниже перечисленных флажков, которые указывают параметры поиска:
- FR_DOWN - Если установлен, то из радио-кнопок направления выбрана кнопка До конца (Down), которая указывает, что пользователь желает искать от текущего положения каретки в тексте до конца документа. Если флажок FR_DOWN не установлен, выбрана кнопка Вверх (Up), что означает, что пользователь желает осуществлять поиск к началу документа.
- FR_MATCHCASE - Если флажок установлен, в отмечаемом блоке С учетом регистра (Match Case) стоит галочка, показывая, что пользователь желает, чтобы поиск был чувствителен к регистру. Если FR_MATCHCASE не установлен, в отмечаемом блоке галочки нет, так что поиск должен быть не чувствительным к регистру.
- FR_WHOLEWORD - Если флажок установлен, в отмечаемом блоке Соответствовать слову только целиком (Match Whole Word Only) стоит галочка, показывая, что пользователь желает осуществить поиск только для целого слова, которое соответствует поисковой последовательности символов. Если FR_WHOLEWORD не установлен, в отмечаемом блоке галочка не стоит, тогда вы должны также осуществлять поиск фрагмента слова, который соответствует поисковой последовательности символов.