Delen via


MFC ActiveX-besturingselementen: Stockeigenschappen toevoegen

Aandeleneigenschappen verschillen van aangepaste eigenschappen omdat ze al door de klasse COleControlzijn geïmplementeerd. COleControl bevat vooraf gedefinieerde lidfuncties die algemene eigenschappen voor het besturingselement ondersteunen. Enkele algemene eigenschappen zijn het bijschrift van het besturingselement en de voorgrond- en achtergrondkleuren. Zie Eigenschappen van aandelen die worden ondersteund door de wizard Eigenschappen toevoegen verderop in dit artikel voor meer informatie over andere aandeleneigenschappen. De verzendkaartvermeldingen voor voorraadeigenschappen worden altijd voorafgegaan door DISP_STOCKPROP.

In dit artikel wordt beschreven hoe u een voorraadeigenschap (in dit geval bijschrift) toevoegt aan een ActiveX-besturingselement met behulp van de wizard Eigenschap toevoegen en de resulterende codewijzigingen uitlegt. Dit zijn een aantal van de onderwerpen:

De wizard Eigenschap toevoegen gebruiken om een aandeleneigenschap toe te voegen

Het toevoegen van voorraadeigenschappen vereist minder code dan het toevoegen van aangepaste eigenschappen, omdat ondersteuning voor de eigenschap automatisch wordt verwerkt door COleControl. In de volgende procedure ziet u hoe u de eigenschap Stock Caption toevoegt aan een ActiveX-besturingsframework en ook kunt gebruiken om andere aandeleneigenschappen toe te voegen. Vervang de naam van de geselecteerde aandeleneigenschap door Bijschrift.

De eigenschappen van Stock Caption toevoegen met behulp van de wizard "Eigenschap toevoegen".

  1. Laad het project van uw besturingselement.

  2. Vouw in de klasseweergave het bibliotheekknooppunt van uw besturingselement uit.

  3. Klik met de rechtermuisknop op het interfaceknooppunt voor uw besturingselement (het tweede knooppunt van het bibliotheekknooppunt) om het snelmenu te openen.

  4. Klik in het snelmenu op Toevoegen en klik vervolgens op Eigenschap toevoegen.

    Hiermee wordt de Eigenschap toevoegen-wizard geopend.

  5. Klik in het vak Eigenschapsnaam op Bijschrift.

  6. Klik op Voltooien.

Wijzigingen in de Wizard voor Voorraadeigenschappen toevoegen

Omdat COleControl stock-eigenschappen ondersteunt, verandert de wizard Eigenschap toevoegen de klassedeclaratie op geen enkele manier; het voegt de eigenschap toe aan de dispatch-kaart. De wizard Eigenschap toevoegen voegt de volgende regel toe aan de dispatch-map van de besturing, die zich in de implementatie bevindt (.CPP)-bestand:

DISP_STOCKPROP_CAPTION()

De volgende regel wordt toegevoegd aan de interfacebeschrijving van uw besturingselement (.IDL)-bestand.

[id(DISPID_CAPTION), helpstring("property Caption")] BSTR Caption;

Met deze regel wordt de eigenschap Caption toegewezen aan een specifieke id. U ziet dat de eigenschap bindbaar is en toestemming van de database aanvraagt voordat u de waarde wijzigt.

Hierdoor is de eigenschap Bijschrift beschikbaar voor gebruikers van uw controle. Als u de waarde van een aandeleneigenschap wilt gebruiken, opent u een lidvariabele of lidfunctie van de COleControl basisklasse. Zie voor meer informatie over deze lidvariabelen en lidfuncties de volgende sectie: Aandelen Eigenschappen ondersteund door de Eigenschap Toevoeg-assistent.

Eigenschappen van aandelen die worden ondersteund door de wizard Eigenschap toevoegen

De COleControl klasse biedt negen voorraadeigenschappen. U kunt de gewenste eigenschappen toevoegen met behulp van de wizard Eigenschap toevoegen.

Vastgoed Routeringskaartvermelding Toegang tot waarde
Appearance DISP_STOCKPROP_APPEARANCE( ) Waarde die toegankelijk is als m_sAppearance.
BackColor DISP_STOCKPROP_BACKCOLOR( ) Waarde toegankelijk door aan te roepen GetBackColor.
BorderStyle DISP_STOCKPROP_BORDERSTYLE( ) Waarde die toegankelijk is als m_sBorderStyle.
Caption DISP_STOCKPROP_CAPTION( ) Waarde toegankelijk door aan te roepen InternalGetText.
Enabled DISP_STOCKPROP_ENABLED( ) Waarde die toegankelijk is als m_bEnabled.
Font DISP_STOCKPROP_FONT( ) Zie het artikel MFC ActiveX-besturingselementen: Lettertypen gebruiken voor gebruik.
ForeColor DISP_STOCKPROP_FORECOLOR( ) Waarde toegankelijk door aan te roepen GetForeColor.
hWnd DISP_STOCKPROP_HWND( ) Waarde die toegankelijk is als m_hWnd.
Text DISP_STOCKPROP_TEXT( ) Waarde toegankelijk door aan te roepen InternalGetText. Deze eigenschap is hetzelfde als Caption, met uitzondering van de naam van de eigenschap.
ReadyState DISP_STOCKPROP_READYSTATE() Waarde die toegankelijk is als m_lReadyState of GetReadyState

Eigenschappen en meldingen van aandelen

De meeste standaard eigenschappen hebben meldingsfuncties die kunnen worden overschreven. Wanneer de BackColor eigenschap bijvoorbeeld wordt gewijzigd, wordt de OnBackColorChanged functie (een lidfunctie van de besturingsklasse) aangeroepen. De standaardimplementatie (in COleControl) roept InvalidateControl aan. Overschrijf deze functie als u aanvullende acties wilt ondernemen als reactie op deze situatie.

Kleureigenschappen

U kunt de standaard ForeColor en BackColor eigenschappen gebruiken, of uw eigen aangepaste kleureigenschappen, bij het vormgeven van het besturingselement. Als u een kleureigenschap wilt gebruiken, roept u de functie COleControl::TranslateColor-lid aan. De parameters van deze functie zijn de waarde van de kleureigenschap en een optionele paletgreep. De retourwaarde is een COLORREF-waarde die kan worden doorgegeven aan GDI-functies, zoals SetTextColor en CreateSolidBrush.

De kleurwaarden voor de standaard ForeColor- en BackColor-eigenschappen worden opgevraagd door de GetForeColor- of de GetBackColor-functie aan te roepen.

In het volgende voorbeeld ziet u hoe u deze twee kleureigenschappen gebruikt bij het schilderen van een besturingselement. Hiermee initialiseert u een tijdelijke COLORREF-variabele en een CBrush object met aanroepen naar TranslateColor: een met behulp van de ForeColor eigenschap en de andere met behulp van de BackColor eigenschap. Vervolgens wordt een tijdelijk CBrush object gebruikt om de rechthoek van het besturingselement te schilderen en wordt de tekstkleur ingesteld met behulp van de ForeColor eigenschap.

CBrush bkBrush(TranslateColor(GetBackColor()));
COLORREF clrFore = TranslateColor(GetForeColor());
pdc->FillRect(rcBounds, &bkBrush);
pdc->SetTextColor(clrFore);
pdc->DrawText(InternalGetText(), -1, rcBounds, DT_SINGLELINE | DT_CENTER | DT_VCENTER);

Zie ook

MFC ActiveX-besturingselementen
MFC ActiveX-besturingselementen: eigenschappen
MFC ActiveX-controles: methoden
COleControl-klasse