Dela via


MFC ActiveX-kontroller: Lägga till lageregenskaper

Lageregenskaper skiljer sig från anpassade egenskaper eftersom de redan har implementerats av klassen COleControl. COleControl innehåller fördefinierade medlemsfunktioner som stöder vanliga egenskaper för kontrollen. Några vanliga egenskaper är kontrollens bildtext och förgrunds- och bakgrundsfärgerna. Information om andra aktieegenskaper finns i Aktieegenskaper som stöds av tilläggsguiden för egenskaper senare i den här artikeln. Posterna för utskickskarta för lageregenskaper prefixas alltid av DISP_STOCKPROP.

Den här artikeln beskriver hur du lägger till en standardegenskap (i det här fallet Bildtext) i en ActiveX-kontroll med hjälp av guiden Lägg till egenskap och förklarar de resulterande kodändringarna. Ämnena omfattar:

Använd guiden Lägg till Egenskap för att lägga till en Aktieegenskap

Att lägga till lageregenskaper kräver mindre kod än att lägga till anpassade egenskaper eftersom stöd för egenskapen hanteras automatiskt av COleControl. Följande procedur visar hur du lägger till egenskapen stock Caption i ett ActiveX-kontrollramverk och kan även användas för att lägga till andra lageregenskaper. Ersätt det valda lageregenskapsnamnet med Rubrik.

Så här lägger du till egenskapen stock Caption med hjälp av guiden Lägg till egenskap

  1. Läs in kontrollens projekt.

  2. I Klassvy expanderar du biblioteksnoden för din kontroll.

  3. Högerklicka på gränssnittsnoden för kontrollen (biblioteksnodens andra nod) för att öppna snabbmenyn.

  4. På snabbmenyn klickar du på Lägg till och sedan på Lägg till egenskap.

    Då öppnas guiden Lägg till egenskap.

  5. I rutan Egenskapsnamn klickar du på Bildtext.

  6. Klicka på Finish.

Lägg till ändringar i egenskapsguiden för lageregenskaper

Eftersom COleControl stöder standardegenskaper ändrar guiden Lägg till egenskap inte klassdeklarationen på något sätt. Den lägger till egenskapen i dispatchkartan. Guiden Lägg till egenskap lägger till följande rad i kontrollens sändningskarta, som finns i implementeringen (. CPP)-fil:

DISP_STOCKPROP_CAPTION()

Följande rad läggs till i kontrollens gränssnittsbeskrivning (. IDL-fil:

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

Den här raden tilldelar egenskapen Bildtext ett specifikt ID. Observera att egenskapen är bindbar och begär behörighet från databasen innan du ändrar värdet.

Detta gör egenskapen Caption tillgänglig för användare av din kontroll. Om du vill använda värdet för en aktieegenskap får du åtkomst till en medlemsvariabel eller medlemsfunktion i basklassen COleControl . Mer information om dessa medlemsvariabler och medlemsfunktioner finns i nästa avsnitt, Aktieegenskaper som stöds av Lägg till egenskap-guiden.

Lageregenskaper som stöds av guiden Lägg till egenskap

Klassen COleControl innehåller nio lageregenskaper. Du kan lägga till de egenskaper du vill ha med hjälp av guiden Lägg till egenskap.

Fastighet Post i distributionskarta Så här kommer du åt värdet
Appearance DISP_STOCKPROP_APPEARANCE( ) Värdet är tillgängligt som m_sAppearance.
BackColor DISP_STOCKPROP_BACKCOLOR( ) Värde som är tillgängligt genom att anropa GetBackColor.
BorderStyle DISP_STOCKPROP_BORDERSTYLE( ) Värdet är tillgängligt som m_sBorderStyle.
Caption DISP_STOCKPROP_CAPTION( ) Värde som är tillgängligt genom att anropa InternalGetText.
Enabled DISP_STOCKPROP_ENABLED( ) Värdet är tillgängligt som m_bEnabled.
Font DISP_STOCKPROP_FONT( ) Se artikeln MFC ActiveX Controls: Using Fonts for usage (Använda teckensnitt för användning).
ForeColor DISP_STOCKPROP_FORECOLOR( ) Värde som är tillgängligt genom att anropa GetForeColor.
hWnd DISP_STOCKPROP_HWND( ) Värdet är tillgängligt som m_hWnd.
Text DISP_STOCKPROP_TEXT( ) Värde som är tillgängligt genom att anropa InternalGetText. Den här egenskapen är samma som Caption, förutom egenskapsnamnet.
ReadyState DISP_STOCKPROP_READYSTATE() Värde som är tillgängligt som m_lReadyState eller GetReadyState

Lageregenskaper och meddelande

De flesta aktieegenskaper har meddelandefunktioner som kan åsidosättas. Närhelst BackColor-egenskapen ändras, anropas OnBackColorChanged-funktionen (en medlemsfunktion i kontrollklassen). Standardutförandet (i COleControl) anropar InvalidateControl. Åsidosätt den här funktionen om du vill vidta ytterligare åtgärder som svar på den här situationen.

Färgegenskaper

Du kan använda standardForeColor och BackColor-egenskaper eller dina egna anpassade färgegenskaper när du målar kontrollen. Om du vill använda en färgegenskap anropar du medlemsfunktionen COleControl::TranslateColor . Parametrarna för den här funktionen är värdet för färgegenskapen och ett valfritt paletthandtag. Returvärdet är ett COLORREF-värde som kan skickas till GDI-funktioner, till exempel SetTextColor och CreateSolidBrush.

Färgvärdena för standardegenskaperna ForeColor och BackColor nås genom att anropa antingen funktionen GetForeColor eller GetBackColor.

I följande exempel visas hur du använder dessa två färgegenskaper när du målar en kontroll. Den initierar en tillfällig COLORREF-variabel och ett CBrush objekt med anrop till TranslateColor: en med egenskapen ForeColor och den andra med hjälp av BackColor egenskapen. Ett tillfälligt CBrush objekt används sedan för att måla kontrollens rektangel och textfärgen anges med egenskapen ForeColor .

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);

Se även

MFC ActiveX-kontroller
MFC ActiveX-kontroller: Egenskaper
MFC ActiveX-kontroller: Metoder
COleControl-klass