Das Suchen oder ersetzen im Dialogfeld Anpassen

Wenn Sie das Dialogfeld Suchen oder Ersetzen von anpassen möchten, können Sie eine der folgenden Methoden:

Wenn Sie das Dialogfeld Suchen oder Ersetzen erstellen, können Sie Flaggen in den Flags der FINDREPLACE -Struktur ausblenden oder Deaktivieren der Steuerelemente für Suche festlegen. Beispielsweise können Sie festlegen, das FR_NOMATCHCASE-Flag zu deaktivieren Sie das Kontrollkästchen Groß-/Kleinschreibung oder legen Sie das FR_HIDEMATCHCASE-Flag, es zu verbergen.

Sie können eine benutzerdefinierte Vorlage für das Dialogfeld Suchen oder Ersetzen , z. B. bereitstellen möchten Sie zusätzliche Steuerelemente enthalten, die nur in Ihrer Anwendung sind. Die FindText und ReplaceText -Funktionen verwenden, die benutzerdefinierte Vorlage statt der Standardvorlage.

&Nbsp;   Darin, eine benutzerdefinierte Vorlage für das Dialogfeld Suchen oder ersetzen
  1. Erstellen Sie die benutzerdefinierte Vorlage durch Ändern der Standardvorlage in die FINDTEXT angegeben.DLG Datei. Die Steuerelement-IDs verwendet in der Standardeinstellung finden oder Ersetzen Dialogfeldvorlage in der DLGS definiert sind.H-Datei.
  2. Verwenden Sie die FINDREPLACE -Struktur, um die Vorlage wie folgt aktivieren:

Sie bieten eine FRHookProc -Hook-Prozedur für das Dialogfeld Suchen oder Ersetzen . Die Hook-Prozedur kann Nachrichten gesendet, um das Dialogfeld verarbeiten. Wenn Sie eine benutzerdefinierte Vorlage verwenden, um zusätzliche Steuerelemente definieren, müssen Sie eine Hook-Prozedur zu verarbeiten für Ihre Steuerelemente bereitstellen.

&Nbsp;   Aktivieren Sie im Dialogfeld Suchen oder ersetzen eine Hook-Prozedur
  1. Legen Sie das FR_ENABLEHOOK-Flag in den Flags der FINDREPLACE -Struktur.
  2. Geben Sie die Adresse der die Hook-Prozedur in der LpfnHook -member.

Nach der Verarbeitung der WM_INITDIALOG -Meldung, sendet die Dialogfeldprozedur eine WM_INITDIALOG-Meldung an die Hook-Prozedur. Dieser Nachricht der lParam -Parameter ist ein Zeiger auf das FINDREPLACE -Struktur verwendet, um das Dialogfeld zu initialisieren.

Wenn die Hook-Prozedur als Reaktion auf die WM_INITDIALOG-Meldung gibt FALSE zurück, wird das Dialogfeld nicht angezeigt, wenn die Hook-Prozedur angezeigt. Um dies zu tun, zunächst keine andere Farbe Operationen durchführen, und rufen Sie dann die ShowWindow und UpdateWindow -Funktionen. Der folgende Code ist ein Beispiel

/ / Wir haben in Reaktion auf WM_INITDIALOG FALSE zurückgegeben. 
/ / Wir haben andere Zeichenoperationen durchgeführt. 
/ / Jetzt wir das Dialogfeld anzuzeigen. 
ShowWindow (hDlg, SW_SHOWNORMAL); 
UpdateWindow(hDlg) 

 

Index