Controlli ActiveX MFC: Aggiunta di proprietà predefinite

Le proprietà predefinite differiscono dalle proprietà personalizzate in quanto già distribuite dalla classe COleControl.COleControl contiene le funzioni membro predefinite che supportano le proprietà comuni per il controllo.Alcune proprietà comuni includono la barra del titolo del controllo e dei colori di primo piano e di sfondo.Per informazioni su altre proprietà predefinite, vedere più avanti Proprietà predefinite supportate di aggiungere guidata proprietà in questo articolo.Le voci della mappa di invio per le proprietà predefinite sono sempre preceduto da DISP_STOCKPROP.

In questo articolo viene descritto come aggiungere una proprietà predefinita (in questo caso, la barra del titolo) a un controllo ActiveX utilizzando l'aggiunta guidata proprietà vengono illustrate le modifiche risultanti di codice.Gli argomenti trattati includono

  • Utilizzo di aggiunta guidata proprietà per aggiungere una proprietà predefinita

  • Modifiche di aggiunta guidata proprietà per le proprietà predefinite

  • Proprietà predefinite supportate di aggiungere guidata proprietà

  • Proprietà predefinite e notifica

  • Proprietà dei colori

    [!NOTA]

    I controlli personalizzati di Visual Basic in genere presentano proprietà come il bordo superiore, sinistro, la larghezza, altezza, vengono allineati, contrassegnano, denominare, TabIndex, tabstop e padre.I contenitori di controlli ActiveX, tuttavia, sono responsabili dell'implementazione delle proprietà del controllo e pertanto i controlli ActiveX non devono supportare queste proprietà.

Utilizzo di aggiunta guidata proprietà per aggiungere una proprietà predefinita

L'aggiunta di proprietà predefinite richiede meno codice che viene aggiunta di proprietà personalizzate perché il supporto per la proprietà viene gestito automaticamente da COleControl.La procedura riportata di seguito viene illustrata l'aggiunta di proprietà predefinita della barra del titolo a un framework del controllo ActiveX e può essere utilizzata per aggiungere altre proprietà predefinite.Sostituire il nome della proprietà predefinito selezionato per la barra del titolo.

Per aggiungere la proprietà predefinita della barra del titolo utilizzo di aggiunta guidata proprietà

  1. Caricare il progetto del controllo.

  2. In Visualizzazione classi, espandere il nodo della libreria del controllo.

  3. Fare clic con il pulsante destro del mouse sul nodo dell'interfaccia per il controllo (il secondo nodo il nodo della libreria) per aprire il menu di scelta rapida.

  4. Dal menu di scelta rapida, fare clic Aggiungi quindi fare clic su Aggiungi proprietà.

    Verrà aperta Aggiunta guidata proprietà.

  5. Nella casella di Property Name , fare clic su Didascalia.

  6. Fare clic su Fine.

Modifiche di aggiunta guidata proprietà per le proprietà predefinite

Poiché le proprietà predefinite di supportare di COleControl , aggiunta guidata proprietà non viene modificata la dichiarazione di classe in alcun modo; aggiungere la proprietà alla mappa di invio.Aggiunta guidata proprietà aggiunge la riga seguente alla mappa di invio del controllo, che si trova nel file di implementazione (.CPP):

DISP_STOCKPROP_CAPTION()

La riga seguente viene aggiunto al file di descrizione dell'interfaccia del controllo (.IDL):

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

Questa riga viene assegnato alla proprietà della barra del titolo un ID specificaSi noti che la proprietà è associabile e richiederà l'autorizzazione dal database prima di modificare il valore.

Ciò rende disponibile la proprietà della barra del titolo degli utenti del controllo.Per utilizzare il valore di una proprietà predefinita, accedere a una variabile membro o una funzione membro della classe base di COleControl .Per ulteriori informazioni su tali variabili membro e funzioni membro, vedere la sezione successiva, immagazzinano le proprietà supportate di aggiungere guidata proprietà.

Inserimento delle proprietà supportate di aggiungere guidata proprietà

La classe di COleControl fornisce nove proprietà predefinite.È possibile aggiungere proprietà desiderata tramite aggiunta guidata proprietà.

Proprietà

Voce delle mappe di invio

Come accedere valore

Aspetto

DISP_STOCKPROP_APPEARANCE ()

Valore accessibile come m_sAppearance.

BackColor

DISP_STOCKPROP_BACKCOLOR ()

Valore accessibile chiamando GetBackColor.

BorderStyle

DISP_STOCKPROP_BORDERSTYLE ()

Valore accessibile come m_sBorderStyle.

Didascalia

DISP_STOCKPROP_CAPTION ()

Valore accessibile chiamando InternalGetText.

Enabled

DISP_STOCKPROP_ENABLED ()

Valore accessibile come m_bEnabled.

Tipo di carattere

DISP_STOCKPROP_FONT ()

Vedere l'articolo Controlli ActiveX MFC: Utilizzo dei tipi di carattere da utilizzare.

ForeColor

DISP_STOCKPROP_FORECOLOR ()

Stimare accessibile chiamando GetForeColor.

hWnd

DISP_STOCKPROP_HWND ()

Stimare accessibile come m_hWnd.

Text

DISP_STOCKPROP_TEXT ()

Valore accessibile chiamando InternalGetText.Questa proprietà è la stessa di Didascalia, fatta eccezione per il nome della proprietà.

ReadyState

DISP_STOCKPROP_READYSTATE ()

Valore accessibile come m_lReadyState o GetReadyState

Proprietà predefinite e notifica

La maggior parte delle proprietà predefinite sono funzioni di notifica che è possibile eseguire l'override.Ad esempio, ogni volta che la proprietà di BackColor viene modificata, la funzione di OnBackColorChanged (una funzione membro della classe del controllo) viene chiamata.l'implementazione predefinita (in COleControl) chiama InvalidateControl.Eseguire l'override della funzione se si desidera intraprendere azioni aggiuntive in risposta a questa situazione.

Proprietà dei colori

È possibile utilizzare ForeColor e le proprietà predefiniti di BackColor , o le proprietà di colore personalizzate quando disegno del controllo.Per utilizzare una proprietà di colore, chiamare la funzione membro di COleControl::TranslateColor .I parametri della funzione vengono il valore della proprietà color e handle facoltative della tavolozza.Il valore restituito è un valore di COLORREF che può essere passato a funzioni GDI, come SetTextColor e CreateSolidBrush.

I valori di colore per ForeColor e le proprietà predefiniti di BackColor avviene chiamando GetForeColor o la funzione di GetBackColor , rispettivamente.

Nell'esempio seguente viene illustrato l'utilizzo di queste due proprietà di colore quando si disegna un controllo.Inizializza una variabile temporanea di COLORREF e un oggetto di CBrush con chiamate a TranslateColor: uno utilizzando la proprietà di ForeColor e l'altro utilizzando la proprietà di BackColor .Un oggetto temporaneo di CBrush quindi utilizzato per disegnare il rettangolo del controllo e il colore del testo viene impostato utilizzando la proprietà di 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);

Vedere anche

Riferimenti

Classe COleControl

Concetti

Controlli ActiveX MFC

Controlli ActiveX MFC: Proprietà

Controlli ActiveX MFC: metodi