Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u meer gedetailleerde controle wilt over het gedrag van automatisch aanvullen of als u een aangepaste bron van tekenreeksen voor automatisch aanvullen wilt toevoegen, moet u het object voor automatisch aanvullen zelf beheren. U kunt automatisch aanvullen handmatig inschakelen op de volgende manieren.
Aanwijzingen
Een eenvoudig autocomplete-object maken
In de volgende stappen ziet u hoe u een eenvoudig automatisch aanvullend object maakt en initialiseert. Een eenvoudig object voor automatisch aanvullen voltooit tekenreeksen van één bron. Foutcontrole is opzettelijk weggelaten in dit voorbeeld.
Maak het object voor automatisch aanvullen.
IAutoComplete *pac; HRESULT hr = CoCreateInstance(CLSID_AutoComplete, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pac));Stel de bron voor automatisch aanvullen in. U kunt een vooraf gedefinieerde vooraf gedefinieerde bron voor automatisch aanvullen gebruiken of u kunt uw eigen aangepaste bron schrijven.
De volgende code maakt gebruik van een van de vooraf gedefinieerde bronnen voor automatisch aanvullen.
IUnknown *punkSource; hr = CoCreateInstance(CLSID_ACListISF, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&punkSource));De volgende code maakt gebruik van een aangepaste bron voor automatisch aanvullen. U kunt uw eigen bron voor automatisch aanvullen schrijven door een object te implementeren dat de interface IEnumString beschikbaar maakt. Het object kan eventueel ook de interfaces IACList en IACList2 implementeren.
CCustomAutoCompleteSource *pcacs = new CCustomAutoCompleteSource(); hr = pcacs->QueryInterface(IID_PPV_ARGS(&punkSource)); if(SUCCEEDED(hr)) { // ... } pcacs->Release();Stel de opties voor de bron voor automatisch aanvullen in (optioneel).
U kunt het gedrag van de bron voor automatisch aanvullen aanpassen door de opties in te stellen als de bron de IACList2-interface beschikbaar maakt. Wanneer u de vooraf gedefinieerde bronnen voor automatisch aanvullen gebruikt, exporteert alleen CLSID_ACListISF IACList2-. Zie IACList2::SetOptionsvoor een volledige lijst met opties en de bijbehorende waarden.
IACList2 *pal2; hr = punkSource->QueryInterface(IID_PPV_ARGS(&pal2)); if (SUCCEEDED(hr)) { hr = pal2->SetOptions(ACLO_FILESYSONLY); pal2->Release(); }Initialiseer het autocomplete-object.
In dit voorbeeld is hwndEdit de referentie van het bewerkingsvenster waarvoor automatisch aanvullen moet worden ingeschakeld. Zie IAutoComplete::Init voor een beschrijving van de laatste twee ongebruikte parameters.
hr = pac->Init(hwndEdit, punkSource, NULL, NULL);Stel de opties van het object voor automatisch aanvullen in (optioneel).
U kunt het gedrag van het object voor automatisch aanvullen aanpassen door de opties in te stellen. Zie de documentatie voor IACList2::SetOptionsvoor een volledige lijst met opties en de bijbehorende waarden.
IAutoComplete2 *pac2; hr = pac->QueryInterface(IID_PPV_ARGS(&pac2)); if (SUCCEEDED(hr)) { hr = pac2->SetOptions(ACO_AUTOSUGGEST); pac2->Release(); }Laat de objecten los.
Notitie
Het object voor automatisch aanvullen blijft gekoppeld aan het bewerkingsbesturingselement, zelfs nadat u het hebt losgekoppeld. Als u voorziet dat u deze objecten later moet openen, bijvoorbeeld als u de opties voor automatisch aanvullen op een later tijdstip wilt wijzigen, is het niet vereist dat u ze op dit moment vrijgeeft.
punkSource->Release(); pac->Release();
Een samengesteld automatisch aanvullen-object maken
Een samengesteld automatisch aanvullend object komt overeen met tekenreeksen uit meerdere bronnen. De adresbalk van Windows Internet Explorer maakt bijvoorbeeld gebruik van een samengesteld automatisch aanvullend object, omdat de gebruiker de naam van een bestand of een URL kan typen. De meeste stappen bij het maken van een samengesteld object voor automatisch aanvullen zijn identiek aan de stappen in 'Een eenvoudig automatisch aanvullen-object maken'. Deze stappen worden als zodanig aangegeven.
Maak het object voor automatisch aanvullen. Dit is hetzelfde als stap 1 hierboven.
Maak de beheerder van samengestelde bronobjecten voor automatisch aanvullen.
Met het samengestelde bronobject voor automatisch aanvullen kunnen meerdere bronnen voor automatisch aanvullen worden gecombineerd tot één bron voor automatisch aanvullen.
IObjMgr *pom; hr = CoCreateInstance(CLSID_ACLMulti, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pom));Opties maken en instellen voor elk van de bronnen voor automatisch aanvullen. Herhaal stap 2 en 3 hierboven voor elke bron.
Koppel elke autocomplete-bron aan de bronnenobjectmanager.
hr = pom->Append(punkSource1); hr = pom->Append(punkSource2);Initialiseer het object voor automatisch aanvullen.
In plaats van de eenvoudige bron voor automatisch aanvullen door te geven aan IAutoComplete::Init, geeft u de samengestelde bronobjectbeheerder door. Dit is hetzelfde als stap 4 hierboven.
hr = pac->Init(hwndEdit, pom, NULL, NULL);Stel de opties van het object voor automatisch aanvullen in. Dit is hetzelfde als stap 5 hierboven.
Laat de objecten los.
Net als in het eenvoudige geval kunt u de objecten vrijgeven zodra u ze hebt gebruikt, maar u kunt ze ook behouden om later opties te wijzigen.
pac->Release(); pom->Release(); // Release each individual source. punkSource1->Release(); punkSource2->Release();