Controlli ActiveX MFC: L'implementazione avanzata della proprietà

Questo articolo descrive gli argomenti correlati alla distribuzione delle proprietà avanzate in un controllo ActiveX:

  • proprietà di sola lettura e di sola scrittura

  • Restituire i codici di errore da una proprietà

proprietà di sola lettura e di sola scrittura

Aggiunta guidata proprietà fornisce un metodo rapido e semplice distribuire le proprietà di sola lettura o scrittura per il controllo.

Per implementare una proprietà di sola lettura o scrittura

  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 , digitare il nome della proprietà.

  6. Per Implementation Type, fare clic Get/Set Methods.

  7. Nella casella di Property Type , selezionare il tipo appropriato per la proprietà.

  8. Se si desidera una proprietà di sola lettura, deselezionare il nome della funzione set.Se si desidera una proprietà di sola scrittura, deselezionare il nome della funzione Get.

  9. Fare clic su Fine.

In questo caso, aggiunta guidata proprietà inserisce la funzione SetNotSupported o GetNotSupported nella voce della mappa di invio anziché un set o di un metodo Get normale.

Se si desidera modificare una proprietà esistente in modalità di sola lettura o di sola scrittura, è possibile modificare la mappa di invio manualmente e rimuovere il set o il richiamo solo dalla classe del controllo.

Se si desidera che la proprietà sia in modo condizionale di sola lettura o di sola scrittura, ad esempio solo quando il controllo funziona in modo specifico), è possibile specificare il set o il metodo Get, come normale e si chiama la funzione di GetNotSupported o di SetNotSupported se appropriato.Di seguito è riportato un esempio:

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

Questo esempio di codice seguente viene chiamato SetNotSupported se il membro dati di m_bReadOnlyMode è TRUE.Se FALSE, la proprietà viene impostata sul nuovo valore.

Restituire i codici di errore da una proprietà

Per indicare che si è verificato un errore durante il tentativo di ottenere o impostare una proprietà, utilizzare la funzione di COleControl::ThrowError , che accetta SCODE (codice di stato) come parametro.È possibile utilizzare SCODE predefinito o definire uno dei propri.Per un elenco di SCODE predefinito e istruzioni sulla definizione dello SCODE, vedere Gestione degli errori nel controllo ActiveX in l'articolo controlli ActiveX: argomenti avanzati.

Le funzioni di supporto disponibili per la maggior parte di SCODEpredefinito comuni la, ad esempio COleControl::SetNotSupported, COleControl::GetNotSupportede COleControl::SetNotPermitted.

[!NOTA]

   ThrowError deve essere utilizzato solo al fine di restituire un errore interno di una proprietà ottiene o imposta la funzione o un metodo di automazione.Questi sono gli unici il momento che il gestore di eccezioni appropriato sarà presente nello stack.

Per ulteriori informazioni sulle eccezioni di creazione rapporti in altre aree del codice, vedere COleControl::FireError e la sezione Gestione degli errori nel controllo ActiveX nei controlli ActiveX articolo: argomenti avanzati.

Vedere anche

Riferimenti

Classe COleControl

Concetti

Controlli ActiveX MFC

Controlli ActiveX MFC: Proprietà

Controlli ActiveX MFC: metodi