Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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ända guiden Lägg till egenskap för att lägga till en standardegenskap
-
Anmärkning
Anpassade kontroller för Visual Basic har vanligtvis egenskaper som Övre, Vänster, Bredd, Höjd, Justera, Tagg, Namn, TabIndex, TabStop och Överordnad. ActiveX-kontrollcontainrar ansvarar dock för att implementera dessa kontrollegenskaper och därför bör ActiveX-kontroller inte stödja dessa egenskaper.
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
Läs in kontrollens projekt.
I Klassvy expanderar du biblioteksnoden för din kontroll.
Högerklicka på gränssnittsnoden för kontrollen (biblioteksnodens andra nod) för att öppna snabbmenyn.
På snabbmenyn klickar du på Lägg till och sedan på Lägg till egenskap.
Då öppnas guiden Lägg till egenskap.
I rutan Egenskapsnamn klickar du på Bildtext.
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