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:
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;
}