Der ReplaceText()
Dialog können Sie die direction
, Match case
und Match Whole Word
Boxen mit den verschiedenen FR_HIDE...
Fahnen verstecken, aber es hat keine Fahnen für das Verstecken der Find Next
und Replace
Tasten. Sie müssen es also manuell tun.
Es gibt zwei Möglichkeiten, dies zu tun:
Sie können eine benutzerdefinierte Dialogressource erstellen, die nur die UI-Felder enthält, die Sie anzeigen möchten, und dann können Sie die FR_ENABLETEMPLATE
oder FR_ENABLETEMPLATEHANDLE
Flagge ermöglichen und bieten die Dialog als Vorlage im Feld lpTemplateName
oder hInstance
.
Sie können die FR_ENABLEHOOK
Flag aktivieren und stellen eine lpfnHook
Rückruf, der die vorhandenen Tasten in der Standarddialog deaktiviert/versteckt, wenn die Verarbeitung der Nachricht WM_INITDIALOG
.
Diese Techniken sind in der MSDN-Dokumentation beschrieben:
Customizing the Find or Replace Dialog Box
ich für # 2 entscheiden würde, da es leicht in Code zu implementieren, zB:
UINT_PTR CALLBACK FRHookProc(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)
{
if (uiMsg == WM_INITDIALOG)
{
HWND hBtn = GetDlgItem(hdlg, 1); // The "Find Next" button is ID 1
if (hBtn)
ShowWindow(hBtn, SW_HIDE);
}
return 0;
}
FINDREPLACE fr = {sizeof(fr), 0};
...
fr.Flags = FR_ENABLEHOOK;
fr.lpfnHook = &FRHookProc;
...
HWND hDlg = ReplaceText(&fr);
Mein Tipp: Verwenden Sie diese Dialoge einfach nicht, IMO sind sie nur gut für Notepad. Machen Sie Ihre eigenen, die viel flexibler ist. –