У меня есть стандартный диалог поиска:
Моя программа может обрабатывать некоторые очень большие файлы, и поиск текста в таких файлах может занять 10-20 секунд и более. Поэтому после нажатия кнопки «Найти далее» я меняю курсор на песочные часы. Я меняю его обратно на стандартный указатель после того, как текст либо найден, либо не найден.
Моя проблема в том, что пользователь может решить отменить поиск и решить сделать это, нажав кнопку «Отмена». Затем кнопка «Отмена» закрывает диалоговое окно, но поиск продолжается в моей подпрограмме FindDialogFind до тех пор, пока текст не будет найден или не найден.
Я поставил точку останова при выходе из FindDialog.exe, но она не достигается, пока не завершится FindDialogFind.
Есть ли способ зафиксировать факт нажатия кнопки «Отмена», что позволит мне разорвать цикл FindDialogFind, или, может быть, есть лучший способ остановить поиск при нажатии кнопки «Отмена»?
OnClose
событияFindDialog
установите логическую переменнуюFStopSearch
. Часто проверяйте эту переменную в своей процедуре поиска и прерывайте поиск, если она установлена. - person LU RD   schedule 09.01.2012