Vyhľadanie textu

Táto téma popisuje vzorového kódu, ktorý zobrazuje a spravuje dialógové okno Hľadať , takže používateľ môže zadať parametre operácia vyhľadávania. Dialógové okno odošle správy okno postup tak môžete vykonávať operácie vyhľadávania.

Kód pre zobrazovanie a spravovanie dialógové okno nahradiť je podobné, okrem toho, že nahrádzanie textu pri písaní funkcia používa na zobrazenie dialógového okna. Dialógové okno nahradiť aj odosiela správy v reakcii na používateľ klikne na nahradenie a Nahradiť všetky tlačidlá.

Chcete použiť dialógové okno vyhľadať alebo nahradiť , musíte vykonať tri samostatné úlohy:

  1. Získať identifikátor správy pre registrovaných správu FINDMSGSTRING.
  2. Zobrazenie dialógového okna.
  3. Proces FINDMSGSTRING správy pri dialógového okna otvoriť.

Keď inicializovať aplikácii volať funkciu RegisterWindowMessage získať identifikátor správy pre registrovaných správu FINDMSGSTRING.

UINT uFindReplaceMsg;  / / správy identifikátor pre FINDMSGSTRING uFindReplaceMsg = RegisterWindowMessage(FINDMSGSTRING) 

Ak chcete zobraziť dialógové okno Hľadať , inicializovať FINDREPLACE štruktúra a potom volať funkciu FindText . Všimnite si, že FINDREPLACE štruktúra a medzipamäť pre vyhľadávací reťazec by mal globálnej alebo statické premenná tak nie ísť von z rozsahu, pred dialógové okno zavrie. Musíte nastaviť hwndOwner člen upresniť okno, ktoré prijíma registrovaných správy. Po vytvorení dialógového okna, môžete tiež premiestniť alebo manipulovať pomocou vrátený rukoväť.

FINDREPLACE fr;       / / spoločné dialógové okno štruktúra
HWND hwnd;            / / vlastník okno
CHAR szFindWhat [80];  / / Tlmivý prijímajúceho reťazec
HWND hdlg = NULL;     / / zvládnuť dialógové okno Hľadať

/ / Inicializovať FINDREPLACE
ZeroMemory (amp; fr, sizeof(FINDREPLACE));
FR.lStructSize = sizeof(FINDREPLACE);
FR.hwndOwner = hwnd;
FR.lpstrFindWhat = szFindWhat;
FR.wFindWhatLen = 80;
FR.Vlajkami = 0;

hdlg = FindText (& fr) 

Po otvorení dialógového okna hlavným posolstvom slučky musí zahŕňať volanie funkcie IsDialogMessage . Prejsť okno rukoväť dialógovom okne ako parameter IsDialogMessage hovoru. To zaručuje, že dialógovom okne správne spracuje klávesnice správy.

Sledovať správy odoslané z dialógového okna, okno postup musí kontroly registrovaných správy FINDMSGSTRING a spracovania hodnoty zložil v štruktúre FINDREPLACE ako v nasledujúcom príklade:

LPFINDREPLACE lpfr;

Ak (správa == uFindReplaceMsg) {/ / získať ukazovateľ štruktúry FINDREPLACE z lParam.

lpfr = lParam (LPFINDREPLACE);

/ / Ak je nastavený príznak FR_DIALOGTERM, / / narúšali rukoväť identifikácie dialógového okna. 

    Ak (lpfr-gt;Príznaky & FR_DIALOGTERM) {hdlg = NULL; 
        Vráti hodnotu 0; 
        } / / Keď je nastavený príznak FR_FINDNEXT, / / volať definovanom aplikáciou vyhľadávanie rutinné
    / / Ak chcete vyhľadať požadovaný reťazec. 

    Ak (lpfr - > Flag & FR_FINDNEXT) SearchFile (lpfr - > lpstrFindWhat,
                   (INT) (lpfr - > Flag & FR_DOWN), (int) (lpfr - > Flag & FR_MATCHCASE)); 

    Vráti hodnotu 0; 
 
} 
 

Index