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.
In dit artikel worden onderwerpen beschreven met betrekking tot het implementeren van geavanceerde eigenschappen in een ActiveX-besturingselement.
Belangrijk
ActiveX is een verouderde technologie die niet mag worden gebruikt voor nieuwe ontwikkeling. Zie ActiveX-besturingselementen voor meer informatie over moderne technologieën die ActiveX vervangen.
eigenschappen voor Read-Only en Write-Only
De wizard Eigenschap toevoegen biedt een snelle en eenvoudige methode voor het implementeren van alleen-lezen- of alleen-schrijven-eigenschappen voor het besturingselement.
Een alleen-lezen- of alleen-schrijven-eigenschap implementeren
Laad het project van uw besturingselement.
Vouw in de klasseweergave het bibliotheekknooppunt van uw besturingselement uit.
Klik met de rechtermuisknop op het interfaceknooppunt voor uw besturingselement (het tweede knooppunt van het bibliotheekknooppunt) om het snelmenu te openen.
Klik in het snelmenu op Toevoegen en klik vervolgens op Eigenschap toevoegen.
Hiermee wordt de Eigenschap toevoegen-wizard geopend.
Typ in het vak Eigenschapsnaam de naam van uw eigenschap.
Klik voor implementatietype op Methoden ophalen/instellen.
Selecteer in het vak Eigenschapstype het juiste type voor de eigenschap.
Als u een alleen-lezen eigenschap wilt, maak dan de naam van de functie Set leeg. Als u een schrijf-eigenschap wilt, laat de naam van de Ophalen-functie leeg.
Klik op Voltooien.
Wanneer u dit doet, voegt de wizard Eigenschap toevoegen de functie SetNotSupported of GetNotSupported in de dispatchmapvermelding in, ter vervanging van een normale functie Get of Set.
Als u een bestaande eigenschap wilt wijzigen in alleen-lezen of alleen-schrijven, kunt u de verzendkaart handmatig bewerken en de overbodige set- of get-functie uit de besturingsklasse verwijderen.
Als u wilt dat een eigenschap voorwaardelijk alleen-lezen of alleen-schrijven is (bijvoorbeeld alleen wanneer uw besturingselement in een bepaalde modus werkt), kunt u de functie Set of Ophalen opgeven, zoals normaal, en de SetNotSupported of GetNotSupported functie indien van toepassing aanroepen. Voorbeeld:
void CMyAxUICtrl::SetMyProperty(SHORT newVal)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (m_bReadOnlyMode) // some control-specific state
{
SetNotSupported();
}
else
{
m_iPropVal = newVal; // set property as normal
SetModifiedFlag();
}
}
Dit codevoorbeeld roept aan SetNotSupported als het m_bReadOnlyMode gegevenslid TRUE is. Als ONWAAR is, wordt de eigenschap ingesteld op de nieuwe waarde.
Foutcodes van een eigenschap retourneren
Als u wilt aangeven dat er een fout is opgetreden tijdens het ophalen of instellen van een eigenschap, gebruikt u de COleControl::ThrowError functie, die een SCODE (statuscode) als parameter gebruikt. U kunt een vooraf gedefinieerde SCODE gebruiken of een van uw eigen code definiëren. Zie Afhandelingsfouten in uw ActiveX-besturingselement in het artikel ActiveX-besturingselementen: Geavanceerde onderwerpen voor een lijst met vooraf gedefinieerde SCOD's en instructies voor het definiëren van aangepaste SCOD's.
Helperfuncties bestaan voor de meest voorkomende vooraf gedefinieerde SCOD's, zoals COleControl::SetNotSupported, COleControl::GetNotSupported en COleControl::SetNotPermitted.
Opmerking
ThrowError is bedoeld om alleen te worden gebruikt als een manier om een fout terug te geven vanuit de Get- of Set-functie van een eigenschap of een automatiseringsmethode. Dit zijn de enige keren dat de juiste uitzonderingshandler aanwezig is op de stack.
Zie COleControl::FireError en de sectie Afhandelingsfouten in uw ActiveX-besturingselement in het artikel ActiveX-besturingselementen: Geavanceerde onderwerpen voor meer informatie over het rapporteren van uitzonderingen in andere gebieden van de code.
Zie ook
MFC ActiveX-besturingselementen
MFC ActiveX-besturingselementen: eigenschappen
MFC ActiveX-controles: methoden
COleControl-klasse