Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

CFindReplaceDialog *Finde = new CFindReplaceDialog();

Finde->Create(TRUE, "", NULL, FR_DOWN, this);

beschäftige mich gerade mit einem Programm wo man CFindReplaceDialog benutz.... habe jedoch noch nicht herausgefunden was der Parameter FR_Down beinhaltet... bzw... was man an dieser Stelle überhaupt für eine Info übergiebt... und den letzten Parameter hab ich auch noch nciht verstanden.... was machen die letzten beiden Parameter (FR_DOWN, this) ??:confused: :confused:

hoffe mir kann jemand helfen

Der vierte Parameter sind Flags. FR_DOWN bedeutet, dass "Abwärts" als Suchrichtung vorgegeben ist. Die möglichen Flags sind hier erklärt:

http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/CommonDialogBoxLibrary/CommonDialogBoxReference/CommonDialogBoxStructures/FINDREPLACE.asp

Der fünfte Parameter bezeichnet das Fenster, dass die FINDMSGSTRING-Nachrichten erhalten soll, die der Suchdialog generiert. Wenn man hier NULL angibt, bekommt das Hauptfenster der Applikation die Nachrichten.

  • Autor

Zuerst mal DANKE Klotzkopp für deine Hilfe bei meinen zwei Lieblingsklassen :rolleyes:

Hab jetzt nur noch eine grundlegende Frage zu CFindReplaceDialog!

Ich kann ihm jetzt gereits sagen, nach was er suchen soll, und durch was er es ersetzten soll!

aber wo kann ich angeben, in welcher Variable überhaupt mein Text ist??

z.b.

Text: "C++ ist super" (angenommen in CString Text gespeichert)

Suchbegriff: "C++"

Ersetzen durch: "Java"

wie kann ich der klasse sagen dass sie die CString Variable Text bearbeiten soll??????

*NULL PEIL* :(

CFindReplaceDialog wird verwendet, damit der Benutzer festlegt, was durch was ersetzt werden soll. Du kannst zwar Vorgaben machen, an die muss sich der Benutzer aber nicht halten. CFindReplaceDialog selbst sucht und ersetzt gar nichts, sondern lässt Dich über die Nachrichten wissen, was der Benutzer gerne hätte. Auf diese Nachrichten musst Du dann reagieren, d.h. den Code für das Suchen und Ersetzen musst Du selbst schreiben.

Original geschrieben von SwordMaster

Text: "C++ ist super" (angenommen in CString Text gespeichert)

Suchbegriff: "C++"

Ersetzen durch: "Java"

Wenn es Dir nur darum geht: Hier reicht auch Text.Replace( "C++", "Java" );
  • Autor

jaja dieses Projekt wird immer lustiger *irnoie*

leider MUß ich das CFindReplaceDialog benutzen wenn ich einen text ersetze (muß eben diese klasse vorstellen, und da kann ich nicht einfach auf die CString Klasse zugreifen :(( )

naja jedenfalls ist mein problem weiterhin....

CFindReplaceDialog Projekt // mein eigentliches Objekt

CString Text // den text den ich bearbeiten will

wie kann ich die Textvariable in das objekt aufnehmen??

z.b. ist m_fr.lpstrFindWhat was ich suchen muß...

giebt es auch eine Variable in der Klasse wo der Text den ich bearbeiten will steht?

Dass ich die Suchen und Ersetzen funktionen selber ausprogrammieren muß, hab ich schon gehört :((... aber ich muß doch dann in der funktion

Projekt::OnErsetzen auch den text haben den ich bearbeiten will (oder?? )!

Original geschrieben von SwordMaster

wie kann ich die Textvariable in das objekt aufnehmen??

...

giebt es auch eine Variable in der Klasse wo der Text den ich bearbeiten will steht?

...

aber ich muß doch dann in der funktion Projekt::OnErsetzen auch den text haben den ich bearbeiten will (oder?? )!

Den Text, in dem gesucht und ersetzt werden soll, musst Du woanders vorhalten, darum kümmert sich der Dialog nicht. Die übliche Anwendung sieht so aus, dass Du eine Document/View-Struktur hast, wobei die Dokumentklasse den Inhalt (=Text) in irgendeiner Form vorhält. Das kann eine CString-Membervariable sein, aber auch ein RTF-Steuerelement oder was ganz anderes. Es muss ja nicht mal Text sein. Daher kann sich CFindReplaceDialog auch nicht darum kümmern, dass der Inhalt übermittelt wird. Nur Du kannst wissen, wie auf Find/Replace-Nachrichten reagiert werden soll.

Wenn Du also innerhalb von Projekt::OnErsetzen den Text verändern willst, dann muss der CString ein Member von Projekt sein.

Ich würde in OnErsetzen so vorgehen:

    [*]Falls der Benutzer ersetzen will, und die aktuelle Markierung dem Suchstring entspricht, diese Stelle ersetzen.

    [*]Von der Markierung ausgehend das nächste Auftreten des Suchstrings finden (abhängig von der vorgegebenen Suchrichtung).

    [*]Falls das Ende (bzw. der Anfang) des Textes errreicht wurde, ohne dass der Suchstring gefunden wurde, Meldung ausgeben.

    [*]Ansonsten die Fundstelle markieren.

    [/list=1]

    Das deckt jetzt noch nicht FR_REPLACEALL, FR_MATCHCASE und FR_WHOLEWORD ab.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.