Condividi tramite


Classe COleControl

Classe di base avanzata per lo sviluppo di controlli OLE.

Sintassi

class COleControl : public CWnd

Membri

Costruttori pubblici

Nome Descrizione
COleControl::COleControl Crea un oggetto COleControl.

Metodi pubblici

Nome Descrizione
COleControl::AmbientAppearance Recupera l'aspetto corrente del controllo.
COleControl::AmbientBackColor Restituisce il valore della proprietà Ambient BackColor.
COleControl::AmbientDisplayName Restituisce il nome del controllo come specificato dal contenitore.
COleControl::AmbientFont Restituisce il valore della proprietà Font di ambiente.
COleControl::AmbientForeColor Restituisce il valore della proprietà ForeColor di ambiente.
COleControl::AmbientLocaleID Restituisce l'ID delle impostazioni locali del contenitore.
COleControl::AmbientScaleUnits Restituisce il tipo di unità utilizzate dal contenitore.
COleControl::AmbientShowGrabHandles Determina se devono essere visualizzati handle di afferramento.
COleControl::AmbientShowHatching Determina se deve essere visualizzata la tratteggio.
COleControl::AmbientTextAlign Restituisce il tipo di allineamento del testo specificato dal contenitore.
COleControl::AmbientUIDead Determina se il controllo deve rispondere alle azioni dell'interfaccia utente.
COleControl::AmbientUserMode Determina la modalità del contenitore.
COleControl::BoundPropertyChanged Notifica al contenitore che una proprietà associata è stata modificata.
COleControl::BoundPropertyRequestEdit Richiede l'autorizzazione per modificare il valore della proprietà.
COleControl::ClientToParent Converte un punto rispetto all'origine del controllo in un punto relativo all'origine del contenitore.
COleControl::ClipCaretRect Regola un rettangolo di cursore se si sovrappone a un controllo .
COleControl::ControlInfoChanged Chiamare questa funzione dopo che il set di mnemonic gestiti dal controllo è stato modificato.
COleControl::D isplayError Visualizza gli eventi di errore azionari all'utente del controllo.
COleControl::D oClick Implementazione del metodo stock DoClick .
COleControl::D oPropExchange Serializza le proprietà di un COleControl oggetto .
COleControl::D oSuperclassPaint Ridisegna un controllo OLE sottoclassato da un controllo Windows.
COleControl::EnableSimpleFrame Abilita il supporto dei fotogrammi semplice per un controllo .
COleControl::ExchangeExtent Serializza la larghezza e l'altezza del controllo.
COleControl::ExchangeStockProps Serializza le proprietà azionarie del controllo.
COleControl::ExchangeVersion Serializza il numero di versione del controllo.
COleControl::FireClick Genera l'evento azionario Click .
COleControl::FireDblClick Genera l'evento azionario DblClick .
COleControl::FireError Genera l'evento azionario Error .
COleControl::FireEvent Genera un evento personalizzato.
COleControl::FireKeyDown Genera l'evento azionario KeyDown .
COleControl::FireKeyPress Genera l'evento azionario KeyPress .
COleControl::FireKeyUp Genera l'evento azionario KeyUp .
COleControl::FireMouseDown Genera l'evento azionario MouseDown .
COleControl::FireMouseMove Genera l'evento azionario MouseMove .
COleControl::FireMouseUp Genera l'evento azionario MouseUp .
COleControl::FireReadyStateChange Genera un evento quando lo stato pronto del controllo cambia.
COleControl::GetActivationPolicy Modifica il comportamento di attivazione predefinito di un controllo che supporta l'interfaccia IPointerInactive .
COleControl::GetAmbientProperty Restituisce il valore della proprietà di ambiente specificata.
COleControl::GetAppearance Restituisce il valore della proprietà Stock Appearance.
COleControl::GetBackColor Restituisce il valore della proprietà Stock BackColor.
COleControl::GetBorderStyle Restituisce il valore della proprietà BorderStyle stock.
COleControl::GetCapture Determina se un oggetto controllo attivato senza finestra dispone dell'acquisizione del mouse.
COleControl::GetClassID Recupera l'ID classe OLE del controllo .
COleControl::GetClientOffset Recupera la differenza tra l'angolo superiore sinistro dell'area rettangolare del controllo e l'angolo superiore sinistro dell'area client.
COleControl::GetClientRect Recupera le dimensioni dell'area client del controllo.
COleControl::GetClientSite Esegue una query su un oggetto per il puntatore al relativo sito client corrente all'interno del contenitore.
COleControl::GetControlFlags Recupera le impostazioni del flag di controllo.
COleControl::GetControlSize Restituisce la posizione e le dimensioni del controllo OLE.
COleControl::GetDC Fornisce un mezzo per un controllo senza finestra per ottenere un contesto di dispositivo dal relativo contenitore.
COleControl::GetEnabled Restituisce il valore della proprietà Stock Enabled.
COleControl::GetExtendedControl Recupera un puntatore a un oggetto controllo esteso appartenente al contenitore.
COleControl::GetFocus Determina se il controllo ha lo stato attivo.
COleControl::GetFont Restituisce il valore della proprietà Stock Font.
COleControl::GetFontTextMetrics Restituisce le metriche di un CFontHolder oggetto .
COleControl::GetForeColor Restituisce il valore della proprietà ForeColor stock.
COleControl::GetHwnd Restituisce il valore della proprietà stock hWnd.
COleControl::GetMessageString Fornisce il testo della barra di stato per una voce di menu.
COleControl::GetNotSupported Impedisce l'accesso al valore della proprietà di un controllo da parte dell'utente.
COleControl::GetReadyState Restituisce lo stato di conformità del controllo.
COleControl::GetRectInContainer Restituisce il rettangolo del controllo rispetto al relativo contenitore.
COleControl::GetStockTextMetrics Restituisce le metriche della proprietà Stock Font.
COleControl::GetText Restituisce il valore della proprietà Stock Text o Caption.
COleControl::GetWindowlessDropTarget Eseguire l'override per consentire a un controllo senza finestra di essere la destinazione delle operazioni di trascinamento della selezione.
COleControl::InitializeIDs Informa la classe di base degli ID di base che il controllo userà.
COleControl::InternalGetFont Restituisce un CFontHolder oggetto per la proprietà Font stock.
COleControl::InternalGetText Recupera la proprietà titolo Caption o Text.
COleControl::InternalSetReadyState Imposta lo stato di conformità del controllo e attiva l'evento ready-state-change.
COleControl::InvalidateControl Invalida un'area del controllo visualizzato, causandone il ridisegno.
COleControl::InvalidateRgn Invalida l'area client della finestra del contenitore all'interno dell'area specificata. Può essere usato per ridisegnare i controlli senza finestra nell'area.
COleControl::IsConvertingVBX Consente il caricamento specializzato di un controllo OLE.
COleControl::IsModified Determina se lo stato del controllo è stato modificato.
COleControl::IsOptimizedDraw Indica se il contenitore supporta il disegno ottimizzato per l'operazione di disegno corrente.
COleControl::IsSubclassedControl Chiamato per determinare se il controllo sottoclassa un controllo Windows.
COleControl::Load Reimposta tutti i dati asincroni precedenti e avvia un nuovo carico della proprietà asincrona del controllo.
COleControl::LockInPlaceActive Determina se il controllo può essere disattivato dal contenitore.
COleControl::OnAmbientPropertyChange Chiamato quando viene modificata una proprietà di ambiente.
COleControl::OnAppearanceChanged Viene chiamato quando viene modificata la proprietà Stock Appearance.
COleControl::OnBackColorChanged Chiamato quando viene modificata la proprietà Stock BackColor.
COleControl::OnBorderStyleChanged Chiamato quando viene modificata la proprietà BorderStyle stock.
COleControl::OnClick Viene chiamato per generare l'evento Stock Click.
COleControl::OnClose Notifica al controllo che IOleControl::Close è stato chiamato.
COleControl::OnDoVerb Chiamato dopo l'esecuzione di un verbo di controllo.
COleControl::OnDraw Chiamato quando viene richiesto un controllo di ridisegnarsi.
COleControl::OnDrawMetafile Chiamato dal contenitore quando viene richiesto un controllo di ridisegnarsi usando un contesto di dispositivo metafile.
COleControl::OnEdit Chiamato dal contenitore per attivare un controllo OLE dall'interfaccia utente.
COleControl::OnEnabledChanged Viene chiamato quando viene modificata la proprietà Stock Enabled.
COleControl::OnEnumVerbs Chiamato dal contenitore per enumerare i verbi di un controllo.
COleControl::OnEventAdvise Chiamato quando i gestori eventi sono connessi o disconnessi da un controllo.
COleControl::OnFontChanged Viene chiamato quando viene modificata la proprietà Stock Font.
COleControl::OnForeColorChanged Chiamato quando viene modificata la proprietà Stock ForeColor.
COleControl::OnFreezeEvents Chiamato quando gli eventi di un controllo sono bloccati o non bloccati.
COleControl::OnGetColorSet Notifica al controllo che IOleObject::GetColorSet è stato chiamato.
COleControl::OnGetControlInfo Fornisce informazioni mnemonic al contenitore.
COleControl::OnGetDisplayString Chiamato per ottenere una stringa per rappresentare un valore della proprietà.
COleControl::OnGetInPlaceMenu Richiede l'handle del menu del controllo che verrà unito al menu contenitore.
COleControl::OnGetNaturalextent Eseguire l'override per recuperare le dimensioni di visualizzazione del controllo più vicine alle dimensioni proposte ed ex modalità tenda.
COleControl::OnGetPredefinedStrings Restituisce stringhe che rappresentano i valori possibili per una proprietà.
COleControl::OnGetPredefinedValue Restituisce il valore corrispondente a una stringa predefinita.
COleControl::OnGetViewExtent Eseguire l'override per recuperare le dimensioni delle aree di visualizzazione del controllo (può essere utilizzato per abilitare il disegno a due passaggi).
COleControl::OnGetViewRect Eseguire l'override per convertire le dimensioni del controllo in un rettangolo a partire da una posizione specifica.
COleControl::OnGetViewStatus Eseguire l'override per recuperare lo stato di visualizzazione del controllo.
COleControl::OnHideToolBars Chiamato dal contenitore quando il controllo è disattivato dall'interfaccia utente.
COleControl::OnInactiveMouseMove Eseguire l'override per fare in modo che il contenitore per il controllo inattivo sotto il puntatore del mouse invii WM_MOUSEMOVE messaggi al controllo.
COleControl::OnInactiveSetCursor Eseguire l'override per fare in modo che il contenitore per il controllo inattivo sotto il puntatore del mouse invii WM_SETCURSOR messaggi al controllo.
COleControl::OnKeyDownEvent Chiamato dopo che è stato generato l'evento Stock KeyDown.
COleControl::OnKeyPressEvent Chiamato dopo che è stato generato l'evento KeyPress azionario.
COleControl::OnKeyUpEvent Chiamato dopo che è stato generato l'evento Stock KeyUp.
COleControl::OnMapPropertyToPage Indica la pagina delle proprietà da utilizzare per la modifica di una proprietà.
COleControl::OnMnemonic Chiamato quando è stato premuto un tasto mnemonico del controllo.
COleControl::OnProperties Chiamato quando è stato richiamato il verbo "Proprietà" del controllo.
COleControl::OnQueryHitPoint Eseguire l'override per verificare se la visualizzazione di un controllo si sovrappone a un determinato punto.
COleControl::OnQueryHitRect Eseguire l'override per verificare se la visualizzazione di un controllo si sovrappone a qualsiasi punto in un determinato rettangolo.
COleControl::OnRenderData Chiamato dal framework per recuperare i dati nel formato specificato.
COleControl::OnRenderFileData Chiamato dal framework per recuperare i dati da un file nel formato specificato.
COleControl::OnRenderGlobalData Chiamato dal framework per recuperare i dati dalla memoria globale nel formato specificato.
COleControl::OnResetState Reimposta le proprietà di un controllo sui valori predefiniti.
COleControl::OnSetClientSite Notifica al controllo che IOleControl::SetClientSite è stato chiamato.
COleControl::OnSetData Sostituisce i dati del controllo con un altro valore.
COleControl::OnSetExtent Chiamato dopo la modifica dell'extent del controllo.
COleControl::OnSetObjectRects Chiamato dopo la modifica delle dimensioni del controllo.
COleControl::OnShowToolBars Chiamato quando il controllo è stato attivato dall'interfaccia utente.
COleControl::OnTextChanged Chiamato quando viene modificata la proprietà Stock Text o Caption.
COleControl::OnWindowlessMessage Elabora i messaggi della finestra (diversi dai messaggi del mouse e della tastiera) per i controlli senza finestra.
COleControl::P arentToClient Converte un punto relativo all'origine del contenitore in un punto relativo all'origine del controllo.
COleControl::P ostModalDialog Notifica al contenitore che una finestra di dialogo modale è stata chiusa.
COleControl::P reModalDialog Notifica al contenitore che una finestra di dialogo modale sta per essere visualizzata.
COleControl::RecreateControlWindow Elimina e ricrea la finestra del controllo.
COleControl::Refresh Forza un aggiornamento dell'aspetto di un controllo.
COleControl::ReleaseCapture Rilascia l'acquisizione del mouse.
COleControl::ReleaseDC Rilascia il contesto del dispositivo di visualizzazione di un contenitore di un controllo senza finestra.
COleControl::ReparentControlWindow Reimposta l'elemento padre della finestra di controllo.
COleControl::ResetStockProps Inizializza le COleControl proprietà delle scorte sui valori predefiniti.
COleControl::ResetVersion Inizializza il numero di versione in un determinato valore.
COleControl::ScrollWindow Consente a un controllo senza finestra di scorrere un'area all'interno dell'immagine attiva sul posto sullo schermo.
COleControl::SelectFontObject Seleziona una proprietà Font personalizzata in un contesto di dispositivo.
COleControl::SelectStockFont Seleziona la proprietà Font stock in un contesto di dispositivo.
COleControl::SerializeExtent Serializza o inizializza lo spazio di visualizzazione per il controllo .
COleControl::SerializeStockProps Serializza o inizializza le COleControl proprietà delle scorte.
COleControl::SerializeVersion Serializza o inizializza le informazioni sulla versione del controllo.
COleControl::SetAppearance Imposta il valore della proprietà Stock Appearance.
COleControl::SetBackColor Imposta il valore della proprietà Stock BackColor.
COleControl::SetBorderStyle Imposta il valore della proprietà BorderStyle stock.
COleControl::SetCapture Fa sì che la finestra del contenitore del controllo acquisisca il possesso dell'acquisizione del mouse per conto del controllo.
COleControl::SetControlSize Imposta la posizione e le dimensioni del controllo OLE.
COleControl::SetEnabled Imposta il valore della proprietà Stock Enabled.
COleControl::SetFocus Fa sì che la finestra del contenitore del controllo assuma il possesso dello stato attivo dell'input per conto del controllo.
COleControl::SetFont Imposta il valore della proprietà Stock Font.
COleControl::SetForeColor Imposta il valore della proprietà Stock ForeColor.
COleControl::SetInitialSize Imposta le dimensioni di un controllo OLE quando viene visualizzato per la prima volta in un contenitore.
COleControl::SetModifiedFlag Modifica lo stato modificato di un controllo.
COleControl::SetNotPermitted Indica che una richiesta di modifica non è riuscita.
COleControl::SetNotSupported Impedisce la modifica del valore della proprietà di un controllo da parte dell'utente.
COleControl::SetRectInContainer Imposta il rettangolo del controllo rispetto al relativo contenitore.
COleControl::SetText Imposta il valore della proprietà Stock Text o Caption.
COleControl::ThrowError Segnala che si è verificato un errore in un controllo OLE.
COleControl::TransformCoords Trasforma i valori delle coordinate tra un contenitore e il controllo .
COleControl::TranslateColor Converte un valore OLE_COLOR in un valore COLORREF.
COleControl::WillAmbientsBeValidDuringLoad Determina se le proprietà di ambiente saranno disponibili alla successiva caricamento del controllo.
COleControl::WindowProc Fornisce una routine di Windows per un COleControl oggetto .

Metodi protetti

Nome Descrizione
COleControl::D rawContent Chiamato dal framework quando l'aspetto del controllo deve essere aggiornato.
COleControl::D rawMetafile Chiamato dal framework quando viene usato il contesto di dispositivo del metafile.
COleControl::IsInvokeAllowed Abilita la chiamata al metodo di automazione.
COleControl::SetInitialDataFormats Chiamato dal framework per inizializzare l'elenco dei formati di dati supportati dal controllo .

Osservazioni:

Derivata da CWnd, questa classe eredita tutte le funzionalità di un oggetto finestra di Windows e funzionalità aggiuntive specifiche di OLE, ad esempio la generazione di eventi e la possibilità di supportare metodi e proprietà.

I controlli OLE possono essere inseriti nelle applicazioni contenitore OLE e comunicare con il contenitore usando un sistema bidirezionale di attivazione degli eventi ed esponendo metodi e proprietà al contenitore. Si noti che i contenitori OLE standard supportano solo la funzionalità di base di un controllo OLE. Non è possibile supportare le funzionalità estese di un controllo OLE. La generazione di eventi si verifica quando gli eventi vengono inviati al contenitore in seguito a determinate azioni eseguite nel controllo. A sua volta, il contenitore comunica con il controllo usando un set esposto di metodi e proprietà analoghi alle funzioni membro e ai membri dati di una classe C++. Questo approccio consente allo sviluppatore di controllare l'aspetto del controllo e di notificare al contenitore quando si verificano determinate azioni.

Controlli senza finestra

I controlli OLE possono essere utilizzati sul posto senza una finestra. I controlli senza finestra presentano vantaggi significativi:

  • I controlli senza finestra possono essere trasparenti e non rettangolari

  • I controlli senza finestra riducono le dimensioni dell'istanza e il tempo di creazione dell'oggetto

I controlli non necessitano di una finestra. I servizi offerti da una finestra possono essere forniti facilmente tramite una singola finestra condivisa (in genere il contenitore) e un po' di codice di invio. Avere una finestra è principalmente una complicazione non necessaria sull'oggetto.

Quando viene usata l'attivazione senza finestra, il contenitore (che ha una finestra) è responsabile della fornitura di servizi che altrimenti sarebbero stati forniti dalla finestra del controllo. Ad esempio, se il controllo deve eseguire query sullo stato attivo della tastiera, eseguire una query sull'acquisizione del mouse o ottenere un contesto di dispositivo, queste operazioni vengono gestite dal contenitore. Le COleControl funzioni membro dell'operazione senza finestra richiamano queste operazioni nel contenitore.

Quando l'attivazione senza finestra è abilitata, il contenitore delega i messaggi di input all'interfaccia del IOleInPlaceObjectWindowless controllo (estensione di IOleInPlaceObject per il supporto senza finestra). COleControlL'implementazione di questa interfaccia invierà questi messaggi attraverso la mappa dei messaggi del controllo, dopo aver modificato le coordinate del mouse in modo appropriato. È possibile elaborare questi messaggi come i normali messaggi della finestra aggiungendo le voci corrispondenti alla mappa dei messaggi.

In un controllo senza finestra è consigliabile usare sempre le COleControl funzioni membro anziché le funzioni membro corrispondenti CWnd o le relative funzioni API di Windows.

Gli oggetti di controllo OLE possono anche creare una finestra solo quando diventano attivi, ma la quantità di lavoro necessaria per la transizione inattiva e la velocità della transizione diventa inattiva. In alcuni casi si tratta di un problema: si consideri, ad esempio, una griglia di caselle di testo. Quando si posiziona il cursore verso l'alto e il basso nella colonna, ogni controllo deve essere attivato sul posto e quindi disattivato. La velocità della transizione inattiva/attiva influisce direttamente sulla velocità di scorrimento.

Per altre informazioni sullo sviluppo di un framework di controllo OLE, vedere gli articoli MFC ActiveX Controls and Overview: Creating an MFC ActiveX Control Program.For more information on developing an OLE control framework, see the articles MFC ActiveX Controls and Overview: Creating an MFC ActiveX Control Program. Per informazioni sull'ottimizzazione dei controlli OLE, inclusi controlli senza finestra e senza sfarfallio, vedere Controlli ActiveX MFC: Ottimizzazione.

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

COleControl

Requisiti

Intestazione: afxctl.h

COleControl::AmbientBackColor

Restituisce il valore della proprietà Ambient BackColor.

OLE_COLOR AmbientBackColor();

Valore restituito

Valore corrente della proprietà BackColor di ambiente del contenitore, se presente. Se la proprietà non è supportata, questa funzione restituisce il colore di sfondo di Windows definito dal sistema.

Osservazioni:

La proprietà Ambient BackColor è disponibile per tutti i controlli ed è definita dal contenitore. Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientDisplayName

Il nome assegnato al contenitore al controllo può essere usato nei messaggi di errore visualizzati all'utente.

CString AmbientDisplayName();

Valore restituito

Nome del controllo OLE. Il valore predefinito è una stringa di lunghezza zero.

Osservazioni:

Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientFont

Restituisce il valore della proprietà Font di ambiente.

LPFONTDISP AmbientFont();

Valore restituito

Puntatore all'interfaccia di invio del tipo di carattere ambientale del contenitore. Il valore predefinito è NULL. Se il valore restituito non è uguale a NULL, l'utente è responsabile del rilascio del tipo di carattere chiamando la relativa funzione membro IUnknown::Release .

Osservazioni:

La proprietà Font di ambiente è definita dal contenitore e disponibile per tutti i controlli. Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientForeColor

Restituisce il valore della proprietà ForeColor di ambiente.

OLE_COLOR AmbientForeColor();

Valore restituito

Valore corrente della proprietà ForeColor di ambiente del contenitore, se presente. Se non è supportato, questa funzione restituisce il colore del testo di Windows definito dal sistema.

Osservazioni:

La proprietà ForeColor di ambiente è disponibile per tutti i controlli ed è definita dal contenitore. Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientLocaleID

Restituisce l'ID delle impostazioni locali del contenitore.

LCID AmbientLocaleID();

Valore restituito

Valore della proprietà LocaleID del contenitore, se presente. Se questa proprietà non è supportata, questa funzione restituisce 0.

Osservazioni:

Il controllo può usare LocaleID per adattare l'interfaccia utente per impostazioni locali specifiche. Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientAppearance

Recupera l'impostazione dell'aspetto corrente per l'oggetto controllo.

short AmbientAppearance();

Valore restituito

Aspetto del controllo:

  • 0 Aspetto piatto

  • Aspetto 1 3D

Osservazioni:

Chiamare questa funzione per recuperare il valore corrente della proprietà DISPID_AMBIENT_APPEARANCE per il controllo .

COleControl::AmbientScaleUnits

Restituisce il tipo di unità utilizzate dal contenitore.

CString AmbientScaleUnits();

Valore restituito

Stringa contenente gli elementi ScaleUnits di ambiente del contenitore. Se questa proprietà non è supportata, questa funzione restituisce una stringa di lunghezza zero.

Osservazioni:

La proprietà ScaleUnits di ambiente del contenitore può essere usata per visualizzare posizioni o dimensioni, etichettate con l'unità scelta, ad esempio twip o centimetri. Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientShowGrabHandles

Determina se il contenitore consente al controllo di visualizzare handle di afferramento per se stesso quando è attivo.

BOOL AmbientShowGrabHandles();

Valore restituito

Diverso da zero se devono essere visualizzati i quadratini di afferramento; in caso contrario, 0. Se questa proprietà non è supportata, questa funzione restituisce un valore diverso da zero.

Osservazioni:

Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientShowHatching

Determina se il contenitore consente al controllo di visualizzare se stesso con un modello tratteggio quando l'interfaccia utente è attiva.

BOOL AmbientShowHatching();

Valore restituito

Diverso da zero se deve essere visualizzato il modello tratteggio; in caso contrario, 0. Se questa proprietà non è supportata, questa funzione restituisce un valore diverso da zero.

Osservazioni:

Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientTextAlign

Determina l'allineamento del testo di ambiente preferito dal contenitore di controlli.

short AmbientTextAlign();

Valore restituito

Stato della proprietà TextAlign dell'ambiente del contenitore. Se questa proprietà non è supportata, questa funzione restituisce 0.

Di seguito è riportato un elenco di valori restituiti validi:

Valore restituito Significato
0 Allineamento generale (numeri a destra, testo a sinistra).
1 Giustificazione sinistra
2 Al centro
3 Giustificazione giusta

Osservazioni:

Questa proprietà è disponibile per tutti i controlli incorporati ed è definita dal contenitore. Si noti che il contenitore non è necessario per supportare questa proprietà.

COleControl::AmbientUIDead

Determina se il contenitore desidera che il controllo risponda alle azioni dell'interfaccia utente.

BOOL AmbientUIDead();

Valore restituito

Diverso da zero se il controllo deve rispondere alle azioni dell'interfaccia utente; in caso contrario, 0. Se questa proprietà non è supportata, questa funzione restituisce 0.

Osservazioni:

Ad esempio, un contenitore potrebbe impostare questo valore su TRUE in modalità progettazione.

COleControl::AmbientUserMode

Determina se il contenitore è in modalità progettazione o in modalità utente.

BOOL AmbientUserMode();

Valore restituito

Diverso da zero se il contenitore è in modalità utente; in caso contrario, 0 (in modalità progettazione). Se questa proprietà non è supportata, questa funzione restituisce TRUE.

Osservazioni:

Ad esempio, un contenitore potrebbe impostare questa proprietà su FALSE in modalità progettazione.

COleControl::BoundPropertyChanged

Segnala che il valore della proprietà associata è stato modificato.

void BoundPropertyChanged(DISPID dispid);

Parametri

dispid
ID dispatch di una proprietà associata del controllo.

Osservazioni:

Questa operazione deve essere chiamata ogni volta che il valore della proprietà viene modificato, anche nei casi in cui la modifica non è stata apportata tramite il metodo Set della proprietà . Tenere presente in particolare le proprietà associate mappate alle variabili membro. Ogni volta che una variabile membro di questo tipo cambia, BoundPropertyChanged deve essere chiamata.

COleControl::BoundPropertyRequestEdit

Richiede l'autorizzazione dall'interfaccia IPropertyNotifySink per modificare un valore di proprietà associato fornito dal controllo .

BOOL BoundPropertyRequestEdit(DISPID dispid);

Parametri

dispid
ID dispatch di una proprietà associata del controllo.

Valore restituito

Diverso da zero se la modifica è consentita; in caso contrario, 0. Il valore predefinito è diverso da zero.

Osservazioni:

Se l'autorizzazione viene negata, il controllo non deve consentire la modifica del valore della proprietà. Questa operazione può essere eseguita ignorando o non riuscita l'azione che ha tentato di modificare il valore della proprietà.

COleControl::ClientToParent

Converte le coordinate di pPoint in coordinate padre.

virtual void ClientToParent(
    LPCRECT lprcBounds,
    LPPOINT pPoint) const;

Parametri

lprcBounds
Puntatore ai limiti del controllo OLE all'interno del contenitore. Non l'area client, ma l'area dell'intero controllo, inclusi i bordi e le barre di scorrimento.

pPoint
Puntatore all'area client OLE da convertire nelle coordinate dell'elemento padre (contenitore).

Osservazioni:

In pPoint di input è relativo all'origine dell'area client del controllo OLE (angolo superiore sinistro dell'area client del controllo). In pPoint di output è relativo all'origine dell'elemento padre (angolo superiore sinistro del contenitore).

COleControl::ClipCaretRect

Regola un rettangolo di cursore se è interamente o parzialmente coperto da oggetti opachi sovrapposti.

BOOL ClipCaretRect(LPRECT lpRect);

Parametri

lpRect
All'input, un puntatore a una struttura RECT che contiene l'area del cursore da regolare. Nell'output, l'area del cursore regolato o NULL se il rettangolo del cursore è completamente coperto.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Un cursore è una linea lampeggiante, un blocco o una bitmap che in genere indica dove verrà inserito testo o grafica.

Un oggetto senza finestra non può mostrare in modo sicuro un cursore senza prima controllare se il cursore è parzialmente o totalmente nascosto da oggetti sovrapposti. Per renderlo possibile, un oggetto può usare ClipCaretRect per regolare il cursore (ridotto) per assicurarsi che si adatti all'area di ritaglio.

Gli oggetti che creano un cursore devono inviare il rettangolo del cursore a ClipCaretRect e usare il rettangolo regolato per il cursore. Se il cursore è completamente nascosto, questo metodo restituirà FALSE e il cursore non deve essere visualizzato affatto in questo caso.

COleControl::COleControl

Costruisce un oggetto COleControl.

COleControl();

Osservazioni:

Questa funzione in genere non viene chiamata direttamente. Il controllo OLE viene in genere creato dalla class factory.

COleControl::ControlInfoChanged

Chiamare questa funzione quando il set di mnemonic supportati dal controllo è stato modificato.

void ControlInfoChanged();

Osservazioni:

Dopo aver ricevuto questa notifica, il contenitore del controllo ottiene il nuovo set di mnemonic eseguendo una chiamata a IOleControl::GetControlInfo. Si noti che il contenitore non è necessario per rispondere a questa notifica.

COleControl::D isplayError

Chiamato dal framework dopo che l'evento stock Error è stato gestito (a meno che il gestore eventi non abbia eliminato la visualizzazione dell'errore).

virtual void DisplayError(
    SCODE scode,
    LPCTSTR lpszDescription,
    LPCTSTR lpszSource,
    LPCTSTR lpszHelpFile,
    UINT nHelpID);

Parametri

scode
Valore del codice di stato da segnalare. Per un elenco completo dei codici possibili, vedere l'articolo Controlli ActiveX: Argomenti avanzati.

lpszDescription
Descrizione dell'errore segnalato.

lpszSource
Nome del modulo che genera l'errore ,in genere il nome del modulo di controllo OLE.

lpszHelpFile
Nome del file della Guida contenente una descrizione dell'errore.

nHelpID
ID contesto della Guida dell'errore segnalato.

Osservazioni:

Il comportamento predefinito visualizza una finestra di messaggio contenente la descrizione dell'errore, contenuta in lpszDescription.

Eseguire l'override di questa funzione per personalizzare la modalità di visualizzazione degli errori.

COleControl::D oClick

Simula un'azione di clic del mouse sul controllo.

void DoClick();

Osservazioni:

Verrà chiamata la funzione membro sottoponibile a COleControl::OnClick override e verrà generato un evento Click azionario, se supportato dal controllo .

Questa funzione è supportata dalla COleControl classe base come metodo stock, denominato DoClick. Per altre informazioni, vedere l'articolo Controlli ActiveX: Metodi.

COleControl::D oPropExchange

Chiamato dal framework durante il caricamento o l'archiviazione di un controllo da una rappresentazione di archiviazione permanente, ad esempio un flusso o un set di proprietà.

virtual void DoPropExchange(CPropExchange* pPX);

Parametri

pPX
Puntatore a un oggetto CPropExchange. Il framework fornisce questo oggetto per stabilire il contesto dello scambio di proprietà, inclusa la relativa direzione.

Osservazioni:

Questa funzione esegue in genere chiamate alla famiglia di funzioni PX_ per caricare o archiviare proprietà specifiche definite dall'utente di un controllo OLE.

Se la Creazione guidata controllo è stata usata per creare il progetto di controllo OLE, la versione sottoposta a override di questa funzione serializzerà le proprietà predefinite supportate da COleControl con una chiamata alla funzione della classe base , COleControl::DoPropExchange. Quando si aggiungono proprietà definite dall'utente al controllo OLE, sarà necessario modificare questa funzione per serializzare le nuove proprietà. Per altre informazioni sulla serializzazione, vedere l'articolo Controlli ActiveX: Serializzazione.

COleControl::D oSuperclassPaint

Ridisegna un controllo OLE sottoclassato da un controllo Windows.

void DoSuperclassPaint(
    CDC* pDC,
    const CRect& rcBounds);

Parametri

pDC
Puntatore al contesto di dispositivo del contenitore del controllo.

rcBounds
Area in cui deve essere disegnato il controllo.

Osservazioni:

Chiamare questa funzione per gestire correttamente il disegno di un controllo OLE non attivo. Questa funzione deve essere utilizzata solo se il controllo OLE sottoclassa un controllo Windows e deve essere chiamato nella OnDraw funzione del controllo.

Per altre informazioni su questa funzione e sulla sottoclasse di un controllo Windows, vedere l'articolo Controlli ActiveX: Sottoclasse di un controllo Windows.

COleControl::D rawContent

Chiamato dal framework quando l'aspetto del controllo deve essere aggiornato.

void DrawContent(
    CDC* pDC,
    CRect& rc);

Parametri

pDC
Puntatore al contesto del dispositivo.

Rc
Area rettangolare in cui disegnare.

Osservazioni:

Questa funzione chiama direttamente la funzione sostituibile OnDraw .

COleControl::D rawMetafile

Chiamato dal framework quando viene usato il contesto di dispositivo del metafile.

void DrawMetafile(
    CDC* pDC,
    CRect& rc);

Parametri

pDC
Puntatore al contesto del dispositivo metafile.

Rc
Area rettangolare in cui disegnare.

COleControl::EnableSimpleFrame

Abilita la caratteristica cornice semplice per un controllo OLE.

void EnableSimpleFrame();

Osservazioni:

Questa caratteristica consente a un controllo di supportare il contenimento visivo di altri controlli, ma non il vero contenimento OLE. Un esempio è una casella di gruppo con diversi controlli all'interno. Questi controlli non sono contenuti in OLE, ma si trovano nella stessa casella di gruppo.

COleControl::ExchangeExtent

Serializza o inizializza lo stato dell'extent del controllo (dimensioni in unità HIMETRIC).

BOOL ExchangeExtent(CPropExchange* pPX);

Parametri

pPX
Puntatore a un oggetto CPropExchange . Il framework fornisce questo oggetto per stabilire il contesto dello scambio di proprietà, inclusa la relativa direzione.

Valore restituito

Diverso da zero se la funzione ha avuto esito positivo; 0 in caso contrario.

Osservazioni:

Questa funzione viene in genere chiamata dall'implementazione predefinita di COleControl::DoPropExchange.

COleControl::ExchangeStockProps

Serializza o inizializza lo stato delle proprietà azionarie del controllo.

void ExchangeStockProps(CPropExchange* pPX);

Parametri

pPX
Puntatore a un oggetto CPropExchange . Il framework fornisce questo oggetto per stabilire il contesto dello scambio di proprietà, inclusa la relativa direzione.

Osservazioni:

Questa funzione viene in genere chiamata dall'implementazione predefinita di COleControl::DoPropExchange.

COleControl::ExchangeVersion

Serializza o inizializza lo stato delle informazioni sulla versione di un controllo.

BOOL ExchangeVersion(
    CPropExchange* pPX,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parametri

pPX
Puntatore a un oggetto CPropExchange. Il framework fornisce questo oggetto per stabilire il contesto dello scambio di proprietà, inclusa la relativa direzione.

dwVersionDefault
Numero di versione corrente del controllo.

bConvert
Indica se i dati persistenti devono essere convertiti nel formato più recente al momento del salvataggio o mantenuti nello stesso formato caricato.

Valore restituito

Diverso da zero della funzione riuscita; 0 in caso contrario.

Osservazioni:

In genere, questa sarà la prima funzione chiamata dall'override di un controllo di COleControl::DoPropExchange. Durante il caricamento, questa funzione legge il numero di versione dei dati persistenti e imposta di conseguenza l'attributo version dell'oggetto CPropExchange . Durante il salvataggio, questa funzione scrive il numero di versione dei dati persistenti.

Per altre informazioni sulla persistenza e sul controllo delle versioni, vedere l'articolo Controlli ActiveX: Serializzazione.

COleControl::FireClick

Chiamato dal framework quando si fa clic sul mouse su un controllo attivo.

void FireClick();

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Per l'attivazione automatica di un evento Click, la mappa eventi del controllo deve avere un evento Click azionario definito.

COleControl::FireDblClick

Chiamato dal framework quando si fa doppio clic sul mouse su un controllo attivo.

void FireDblClick();

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Per l'attivazione automatica di un evento DblClick, la mappa eventi del controllo deve avere un evento DblClick azionario definito.

COleControl::FireError

Genera l'evento Stock Error.

void FireError(
    SCODE scode,
    LPCTSTR lpszDescription,
    UINT nHelpID = 0);

Parametri

scode
Valore del codice di stato da segnalare. Per un elenco completo dei codici possibili, vedere l'articolo Controlli ActiveX: Argomenti avanzati.

lpszDescription
Descrizione dell'errore segnalato.

nHelpID
ID della Guida dell'errore segnalato.

Osservazioni:

Questo evento consente di segnalare, in posizioni appropriate nel codice, che si è verificato un errore all'interno del controllo. A differenza di altri eventi azionari, ad esempio Click o MouseMove, l'errore non viene mai generato dal framework.

Per segnalare un errore che si verifica durante una funzione get di proprietà, una funzione set di proprietà o un metodo di automazione, chiamare COleControl::ThrowError.

L'implementazione dell'evento Stock Error di un controllo OLE usa un valore SCODE. Se il controllo usa questo evento e deve essere utilizzato in Visual Basic 4.0, si riceveranno errori perché il valore SCODE non è supportato in Visual Basic.

Per risolvere questo problema, modificare manualmente il parametro SCODE nel controllo . File ODL in un oggetto long. Inoltre, qualsiasi evento, metodo o proprietà personalizzato che usa un parametro SCODE causa anche lo stesso problema.

COleControl::FireEvent

Genera un evento definito dall'utente dal controllo con un numero qualsiasi di argomenti facoltativi.

void AFX_CDECL FireEvent(
    DISPID dispid,
    BYTE* pbParams,
...);

Parametri

dispid
ID di invio dell'evento da attivare.

pbParams
Descrittore per i tipi di parametro dell'evento.

Osservazioni:

In genere questa funzione non deve essere chiamata direttamente. Si chiameranno invece le funzioni di generazione di eventi nella sezione della mappa eventi della dichiarazione di classe del controllo.

L'argomento pbParams è un elenco separato da spazi di VTS_. Uno o più di questi valori, separati da spazi (non virgole), specificano l'elenco dei parametri della funzione. I possibili valori sono i seguenti:

Simbolo Tipo parametro
VTS_COLOR OLE_COLOR
VTS_FONT IFontDisp*
VTS_HANDLE HWND
VTS_PICTURE IPictureDisp*
VTS_OPTEXCLUSIVE OLE_OPTEXCLUSIVE*
VTS_TRISTATE OLE_TRISTATE
VTS_XPOS_HIMETRIC OLE_XPOS_HIMETRIC
VTS_YPOS_HIMETRIC OLE_YPOS_HIMETRIC
VTS_XPOS_PIXELS OLE_XPOS_PIXELS
VTS_YPOS_PIXELS OLE_YPOS_PIXELS
VTS_XSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_YSIZE_PIXELS OLE_XSIZE_PIXELS
VTS_XSIZE_HIMETRIC OLE_XSIZE_HIMETRIC
VTS_YSIZE_HIMETRIC OLE_XSIZE_HIMETRIC

Nota

Sono state definite costanti varianti aggiuntive per tutti i tipi varianti, ad eccezione di VTS_FONT e VTS_PICTURE, che forniscono un puntatore alla costante dati variant. Queste costanti vengono denominate usando la convenzione VTS_P<CONSTANT-NAME> . Ad esempio, VTS_PCOLOR è un puntatore a una costante VTS_COLOR.

COleControl::FireKeyDown

Chiamato dal framework quando viene premuto un tasto mentre il controllo è attivo nell'interfaccia utente.

void FireKeyDown(
    USHORT* pnChar,
    short nShiftState);

Parametri

pnChar
Puntatore al valore del codice della chiave virtuale del tasto premuto. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h

nShiftState
Contiene una combinazione dei flag seguenti:

  • SHIFT_MASK Il tasto MAIUSC è stato premuto durante l'azione.

  • CTRL_MASK Il tasto CTRL è stato premuto durante l'azione.

  • ALT_MASK Il tasto ALT è stato premuto durante l'azione.

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Per l'attivazione automatica di un evento KeyDown, la mappa eventi del controllo deve avere un evento KeyDown azionario definito.

COleControl::FireKeyPress

Chiamato dal framework quando viene premuto e rilasciato un tasto mentre il controllo personalizzato è Attivo nell'interfaccia utente all'interno del contenitore.

void FireKeyPress(USHORT* pnChar);

Parametri

pnChar
Puntatore al valore del carattere del tasto premuto.

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Il destinatario dell'evento può modificare pnChar, ad esempio, convertire tutti i caratteri minuscoli in lettere maiuscole. Se si desidera esaminare il carattere modificato, eseguire l'override OnKeyPressEventdi .

Affinché si verifichi l'attivazione automatica di un evento KeyPress, la mappa eventi del controllo deve avere un evento KeyPress azionario definito.

COleControl::FireKeyUp

Chiamato dal framework quando viene rilasciata una chiave mentre il controllo personalizzato è Attivo nell'interfaccia utente all'interno del contenitore.

void FireKeyUp(
    USHORT* pnChar,
    short nShiftState);

Parametri

pnChar
Puntatore al valore del codice della chiave virtuale della chiave rilasciata. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h

nShiftState
Contiene una combinazione dei flag seguenti:

  • SHIFT_MASK Il tasto MAIUSC è stato premuto durante l'azione.

  • CTRL_MASK Il tasto CTRL è stato premuto durante l'azione.

  • ALT_MASK Il tasto ALT è stato premuto durante l'azione.

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Affinché si verifichi l'attivazione automatica di un evento KeyUp, la mappa eventi del controllo deve avere un evento KeyUp azionario definito.

COleControl::FireMouseDown

Chiamato dal framework quando viene premuto un pulsante del mouse su un controllo personalizzato attivo.

void FireMouseDown(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametri

nButton
Valore numerico del pulsante del mouse premuto. Può contenere uno dei valori seguenti:

  • LEFT_BUTTON È stato premuto il pulsante sinistro del mouse.

  • MIDDLE_BUTTON Il pulsante centrale del mouse è stato premuto.

  • RIGHT_BUTTON è stato premuto il pulsante destro del mouse.

nShiftState
Contiene una combinazione dei flag seguenti:

  • SHIFT_MASK Il tasto MAIUSC è stato premuto durante l'azione.

  • CTRL_MASK Il tasto CTRL è stato premuto durante l'azione.

  • ALT_MASK Il tasto ALT è stato premuto durante l'azione.

x
Coordinata x del cursore quando è stato premuto un pulsante del mouse. La coordinata è relativa all'angolo superiore sinistro della finestra di controllo.

y
Coordinata y del cursore quando è stato premuto un pulsante del mouse. La coordinata è relativa all'angolo superiore sinistro della finestra di controllo.

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Affinché si verifichi l'attivazione automatica di un evento MouseDown, la mappa eventi del controllo deve avere un evento MouseDown azionario definito.

COleControl::FireMouseMove

Chiamato dal framework quando il cursore viene spostato su un controllo personalizzato attivo.

void FireMouseMove(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametri

nButton
Valore numerico dei pulsanti del mouse premuti. Contiene una combinazione dei valori seguenti:

  • LEFT_BUTTON Il pulsante sinistro del mouse è stato premuto durante l'azione.

  • MIDDLE_BUTTON Il pulsante centrale del mouse è stato premuto durante l'azione.

  • RIGHT_BUTTON Il pulsante destro del mouse è stato premuto durante l'azione.

nShiftState
Contiene una combinazione dei flag seguenti:

  • SHIFT_MASK Il tasto MAIUSC è stato premuto durante l'azione.

  • CTRL_MASK Il tasto CTRL è stato premuto durante l'azione.

  • ALT_MASK Il tasto ALT è stato premuto durante l'azione.

x
Coordinata x del cursore. La coordinata è relativa all'angolo superiore sinistro della finestra di controllo.

y
Coordinata y del cursore. La coordinata è relativa all'angolo superiore sinistro della finestra di controllo.

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Affinché si verifichi l'attivazione automatica di un evento MouseMove, la mappa eventi del controllo deve avere un evento MouseMove azionario definito.

COleControl::FireMouseUp

Chiamato dal framework quando viene rilasciato un pulsante del mouse su un controllo personalizzato attivo.

void FireMouseUp(
    short nButton,
    short nShiftState,
    OLE_XPOS_PIXELS x,
    OLE_YPOS_PIXELS y);

Parametri

nButton
Valore numerico del pulsante del mouse rilasciato. Può avere uno dei valori seguenti:

  • LEFT_BUTTON È stato rilasciato il pulsante sinistro del mouse.

  • MIDDLE_BUTTON È stato rilasciato il pulsante centrale del mouse.

  • RIGHT_BUTTON È stato rilasciato il pulsante destro del mouse.

nShiftState
Contiene una combinazione dei flag seguenti:

  • SHIFT_MASK Il tasto MAIUSC è stato premuto durante l'azione.

  • CTRL_MASK Il tasto CTRL è stato premuto durante l'azione.

  • ALT_MASK Il tasto ALT è stato premuto durante l'azione.

x
Coordinata x del cursore quando è stato rilasciato un pulsante del mouse. La coordinata è relativa all'angolo superiore sinistro della finestra di controllo.

y
Coordinata y di un cursore quando è stato rilasciato un pulsante del mouse. La coordinata è relativa all'angolo superiore sinistro della finestra di controllo.

Osservazioni:

Se questo evento viene definito come evento personalizzato, si determina quando viene generato l'evento.

Affinché si verifichi l'attivazione automatica di un evento MouseUp, la mappa eventi del controllo deve avere un evento MouseUp azionario definito.

COleControl::FireReadyStateChange

Genera un evento con il valore corrente dello stato pronto del controllo.

void FireReadyStateChange();

Osservazioni:

Lo stato pronto può essere uno dei valori seguenti:

Nome Descrizione
READYSTATE_UNINITIALIZED Stato di inizializzazione predefinito
READYSTATE_LOADING Il controllo sta attualmente caricando le relative proprietà
READYSTATE_LOADED Il controllo è stato inizializzato
READYSTATE_INTERACTIVE Il controllo dispone di dati sufficienti per essere interattivi, ma non tutti i dati asincroni vengono ancora caricati
READYSTATE_COMPLETE Controllo ha tutti i relativi dati

Usare GetReadyState per determinare l'idoneità corrente del controllo.

InternalSetReadyState modifica lo stato pronto al valore fornito, quindi chiama FireReadyStateChange.

COleControl::GetActivationPolicy

Modifica il comportamento di attivazione predefinito di un controllo che supporta l'interfaccia IPointerInactive .

virtual DWORD GetActivationPolicy();

Valore restituito

Combinazione di flag dell'enumerazione POINTERINACTIVE. I flag possibili sono:

Nome Descrizione
POINTERINACTIVE_ACTIVATEONENTRY L'oggetto deve essere attivato sul posto quando il mouse lo entra durante un'operazione di spostamento del mouse.
POINTERINACTIVE_DEACTIVATEONLEAVE L'oggetto deve essere disattivato quando il mouse lascia l'oggetto durante un'operazione di spostamento del mouse.
POINTERINACTIVE_ACTIVATEONDRAG L'oggetto deve essere attivato sul posto quando il mouse viene trascinato su di esso durante un'operazione di trascinamento della selezione.

Osservazioni:

Quando l'interfaccia IPointerInactive è abilitata, il contenitore delega WM_SETCURSOR e WM_MOUSEMOVE messaggi. COleControlL'implementazione di questa interfaccia invierà questi messaggi attraverso la mappa dei messaggi del controllo, dopo aver modificato le coordinate del mouse in modo appropriato.

Ogni volta che il contenitore riceve un messaggio WM_SETCURSOR o WM_MOUSEMOVE con il puntatore del mouse su un oggetto inattivo che supporta IPointerInactive, deve chiamare GetActivationPolicy sull'interfaccia e restituire i flag dall'enumerazione POINTERINACTIVE.

È possibile elaborare questi messaggi esattamente come i normali messaggi della finestra aggiungendo le voci corrispondenti alla mappa dei messaggi. Nei gestori evitare di usare la m_hWnd variabile membro (o qualsiasi funzione membro che la usa) senza prima verificare che il relativo valore sia diverso da NULL.

Qualsiasi oggetto destinato a eseguire più di impostare il cursore del mouse e/o generare un evento di spostamento del mouse, ad esempio fornire un feedback visivo speciale, deve restituire il flag POINTERINACTIVE_ACTIVATEONENTRY e disegnare il feedback solo quando è attivo. Se l'oggetto restituisce questo flag, il contenitore deve attivarlo immediatamente sul posto e quindi inoltrarlo lo stesso messaggio che ha attivato la chiamata a GetActivationPolicy.

Se vengono restituiti entrambi i flag POINTERINACTIVE_ACTIVATEONENTRY e POINTERINACTIVE_DEACTIVATEONLEAVE, l'oggetto verrà attivato solo quando il mouse si trova sull'oggetto. Se viene restituito solo il flag POINTERINACTIVE_ACTIVATEONENTRY, l'oggetto verrà attivato una sola volta quando il mouse entra per la prima volta nell'oggetto.

È anche possibile che un controllo inattivo sia la destinazione di un'operazione di trascinamento e rilascio OLE. Ciò richiede l'attivazione del controllo nel momento in cui l'utente trascina un oggetto su di esso, in modo che la finestra del controllo possa essere registrata come destinazione di rilascio. Per causare l'attivazione durante un trascinamento, restituire il flag di POINTERINACTIVE_ACTIVATEONDRAG:

DWORD CMyAxCtrl::GetActivationPolicy()
{
   return POINTERINACTIVE_ACTIVATEONDRAG;
}

Le informazioni comunicate da GetActivationPolicy non devono essere memorizzate nella cache da un contenitore. Al contrario, questo metodo deve essere chiamato ogni volta che il mouse entra in un oggetto inattivo.

Se un oggetto inattivo non richiede l'attivazione sul posto quando il mouse lo immette, il contenitore deve inviare messaggi successivi WM_SETCURSOR a questo oggetto chiamando OnInactiveSetCursor purché il puntatore del mouse rimanga sull'oggetto.

L'abilitazione dell'interfaccia IPointerInactive significa in genere che il controllo sia in grado di elaborare sempre i messaggi del mouse. Per ottenere questo comportamento in un contenitore che non supporta l'interfaccia IPointerInactive , è necessario che il controllo sia sempre attivato quando visibile, il che significa che il controllo deve avere il flag OLEMISC_ACTIVATEWHENVISIBLE tra i flag vari. Tuttavia, per impedire che questo flag abbia effetto in un contenitore che supporta IPointerInactive, è anche possibile specificare il flag OLEMISC_IGNOREACTIVATEWHENVISIBLE:

static const DWORD BASED_CODE _dwMyOleMisc =
    OLEMISC_ACTIVATEWHENVISIBLE |
    OLEMISC_IGNOREACTIVATEWHENVISIBLE |
    OLEMISC_SETCLIENTSITEFIRST |
    OLEMISC_INSIDEOUT |
    OLEMISC_CANTLINKINSIDE |
    OLEMISC_RECOMPOSEONRESIZE;

COleControl::GetAmbientProperty

Ottiene il valore di una proprietà di ambiente del contenitore.

BOOL GetAmbientProperty(
    DISPID dispid,
    VARTYPE vtProp,
    void* pvProp);

Parametri

dwDispid
ID dispatch della proprietà di ambiente desiderata.

vtProp
Tag di tipo variant che specifica il tipo del valore da restituire in pvProp.

pvProp
Puntatore all'indirizzo della variabile che riceverà il valore della proprietà o il valore restituito. Il tipo effettivo di questo puntatore deve corrispondere al tipo specificato da vtProp.

vtProp Tipo di pvProp
VT_BOOL BOOL*
VT_BSTR CString*
VT_I2 short*
VT_I4 long*
VT_R4 float*
VT_R8 double*
VT_CY CY*
VT_COLOR OLE_COLOR*
VT_DISPATCH LPDISPATCH*
VT_FONT LPFONTDISP*

Valore restituito

Diverso da zero se la proprietà di ambiente è supportata; in caso contrario, 0.

Osservazioni:

Se si usa GetAmbientProperty per recuperare le proprietà DisplayName e ScaleUnits di ambiente, impostare vtProp su VT_BSTR e pvProp su CString*. Se si recupera la proprietà Font di ambiente, impostare vtProp su VT_FONT e pvProp su LPFONTDISP*.

Si noti che le funzioni sono già state fornite per le proprietà di ambiente comuni, ad esempio AmbientBackColor e AmbientFont.

COleControl::GetAppearance

Implementa la funzione Get della proprietà Aspetto azionario del controllo.

short GetAppearance ();

Valore restituito

Il valore restituito specifica l'impostazione dell'aspetto corrente come short valore (VT_I2), se ha esito positivo. Questo valore è zero se l'aspetto del controllo è piatto e 1 se l'aspetto del controllo è 3D.

COleControl::GetBackColor

Implementa la funzione Get della proprietà BackColor stock del controllo.

OLE_COLOR GetBackColor();

Valore restituito

Il valore restituito specifica il colore di sfondo corrente come valore OLE_COLOR, se ha esito positivo. Questo valore può essere convertito in un valore COLORREF con una chiamata a TranslateColor.

COleControl::GetBorderStyle

Implementa la funzione Get della proprietà BorderStyle stock del controllo.

short GetBorderStyle();

Valore restituito

1 se il controllo ha un bordo normale; 0 se il controllo non ha bordo.

COleControl::GetCapture

Determina se l'oggetto dispone dell'acquisizione COleControl del mouse.

CWnd* GetCapture();

Valore restituito

Se il controllo è attivato e senza finestra, restituisce this se il controllo dispone attualmente dell'acquisizione del mouse (come determinato dal contenitore del controllo) o NULL se non dispone dell'acquisizione.

In caso contrario, restituisce l'oggetto CWnd con acquisizione del mouse (uguale a CWnd::GetCapture).

Osservazioni:

Un controllo senza finestra attivato riceve l'acquisizione del mouse quando viene chiamato SetCapture .

COleControl::GetClassID

Chiamato dal framework per recuperare l'ID classe OLE del controllo.

virtual HRESULT GetClassID(LPCLSID pclsid) = 0;

Parametri

pclsid
Puntatore alla posizione dell'ID classe.

Valore restituito

Diverso da zero se la chiamata non ha avuto esito positivo; in caso contrario, 0.

Osservazioni:

In genere implementato dal IMPLEMENT_OLECREATE_EX.

COleControl::GetClientOffset

Recupera la differenza tra l'angolo superiore sinistro dell'area rettangolare del controllo e l'angolo superiore sinistro dell'area client.

virtual void GetClientOffset(long* pdxOffset, long* pdyOffset) const;

Parametri

pdxOffset
Puntatore all'offset orizzontale dell'area client del controllo OLE.

pdyOffset
Puntatore all'offset verticale dell'area client del controllo OLE.

Osservazioni:

Il controllo OLE ha un'area rettangolare all'interno del relativo contenitore. L'area client del controllo è l'area di controllo esclusa i bordi e le barre di scorrimento. L'offset recuperato da GetClientOffset è la differenza tra l'angolo superiore sinistro dell'area rettangolare del controllo e l'angolo superiore sinistro dell'area client. Se il controllo dispone di elementi non client diversi dai bordi standard e dalle barre di scorrimento, eseguire l'override di questa funzione membro per specificare l'offset.

COleControl::GetClientRect

Recupera le dimensioni dell'area client del controllo.

virtual void GetClientRect(LPRECT lpRect) const;

Parametri

lpRect
Puntatore a una RECT struttura contenente le dimensioni dell'area client del controllo senza finestra, ovvero le dimensioni del controllo meno i bordi della finestra, i frame, le barre di scorrimento e così via. Il parametro lpRect indica le dimensioni del rettangolo client del controllo, non la relativa posizione.

COleControl::GetClientSite

Esegue una query su un oggetto per il puntatore al relativo sito client corrente all'interno del contenitore.

LPOLECLIENTSITE GetClientSite();

Valore restituito

Puntatore al sito client corrente del controllo nel relativo contenitore.

Osservazioni:

Il puntatore restituito punta a un'istanza di IOleClientSite. L'interfaccia IOleClientSite , implementata dai contenitori, è la visualizzazione dell'oggetto del relativo contesto: dove è ancorata nel documento, dove ottiene l'archiviazione, l'interfaccia utente e altre risorse.

COleControl::GetControlFlags

Recupera le impostazioni del flag di controllo.

virtual DWORD GetControlFlags();

Valore restituito

Combinazione ORed dei flag nell'enumerazione ControlFlags:

enum ControlFlags {
    fastBeginPaint = 0x0001,
    clipPaintDC = 0x0002,
    pointerInactive = 0x0004,
    noFlickerActivate = 0x0008,
    windowlessActivate = 0x0010,
    canOptimizeDraw = 0x0020,
    };

Osservazioni:

Per impostazione predefinita, GetControlFlags restituisce fastBeginPaint | clipPaintDC.

Nome Descrizione
fastBeginPaint Se impostato, usa una funzione begin-paint personalizzata per i controlli OLE anziché l'API BeginPaint (impostata per impostazione predefinita).
clipPaintDC Se non è impostato, disabilita la chiamata a IntersectClipRect effettuata da COleControl e ottiene un piccolo vantaggio di velocità. Se si usa l'attivazione senza finestra, il flag non ha alcun effetto.
pointerInactive Se impostato, fornisce l'interazione del mouse mentre il controllo è inattivo abilitando COleControll'implementazione dell'interfaccia IPointerInactive , che è disabilitata per impostazione predefinita.
noFlickerActivate Se impostata, elimina le operazioni di disegno aggiuntive e lo sfarfallio visivo a cui si accompagna. Utilizzare quando il controllo si disegna in modo identico negli stati inattivi e attivi. Se si usa l'attivazione senza finestra, il flag non ha alcun effetto.
windowlessActivate Se impostato, indica che il controllo usa l'attivazione senza finestra.
canOptimizeDraw Se impostato, indica che il controllo eseguirà il disegno ottimizzato, se il contenitore lo supporta.

Per altre informazioni su GetControlFlags e altre ottimizzazioni dei controlli OLE, vedere Controlli ActiveX: Ottimizzazione.

COleControl::GetControlSize

Recupera le dimensioni della finestra di controllo OLE.

void GetControlSize(
    int* pcx,
    int* pcy);

Parametri

pcx
Specifica la larghezza del controllo in pixel.

pcy
Specifica l'altezza del controllo in pixel.

Osservazioni:

Si noti che tutte le coordinate per le finestre di controllo sono relative all'angolo superiore sinistro del controllo.

COleControl::GetDC

Fornisce un oggetto senza finestra per ottenere un contesto di dispositivo schermo (o compatibile) dal relativo contenitore.

CDC* GetDC(
    LPCRECT lprcRect = NULL,
    DWORD dwFlags = OLEDC_PAINTBKGND);

Parametri

lprcRect
Puntatore al rettangolo che il controllo senza finestra desidera ridisegnare, nelle coordinate client del controllo. NULL indica l'extent dell'oggetto completo.

dwFlags
Disegno degli attributi del contesto di dispositivo. Le scelte sono:

  • OLEDC_NODRAW Indica che l'oggetto non userà il contesto di dispositivo per eseguire alcun disegno, ma semplicemente per ottenere informazioni sul dispositivo di visualizzazione. Il contenitore deve semplicemente passare il controller di dominio della finestra senza ulteriore elaborazione.

  • OLEDC_PAINTBKGND Richiede che il contenitore dipinga lo sfondo prima di restituire il controller di dominio. Un oggetto deve usare questo flag se richiede un controller di dominio per ridisegnare un'area con sfondo trasparente.

  • OLEDC_OFFSCREEN Informa il contenitore che l'oggetto desidera eseguire il rendering in una bitmap fuori schermo che deve quindi essere copiata sullo schermo. Un oggetto deve usare questo flag quando l'operazione di disegno che sta per eseguire genera un sacco di sfarfallio. Il contenitore è libero di rispettare o meno questa richiesta. Tuttavia, se questo flag non è impostato, il contenitore deve restituire un controller di dominio sullo schermo. In questo modo, gli oggetti possono eseguire operazioni dirette sullo schermo, ad esempio la visualizzazione di una selezione (tramite un'operazione XOR ).

Valore restituito

Puntatore al contesto di dispositivo di visualizzazione per l'area client del contenitore CWnd se l'operazione riesce; in caso contrario, il valore restituito è NULL. Il contesto del dispositivo di visualizzazione può essere usato nelle funzioni GDI successive per disegnare nell'area client della finestra del contenitore.

Osservazioni:

La funzione membro ReleaseDC deve essere chiamata per rilasciare il contesto dopo il disegno. Quando si chiama GetDC, gli oggetti passano il rettangolo in cui desiderano disegnare nelle proprie coordinate client. GetDC li converte in coordinate dell'area client del contenitore. L'oggetto non deve richiedere un rettangolo di disegno desiderato maggiore del proprio rettangolo di area client, la cui dimensione può essere recuperata con GetClientRect. Ciò impedisce agli oggetti di disegnare inavvertitamente dove non dovrebbero.

COleControl::GetEnabled

Implementa la funzione Get della proprietà Stock Enabled del controllo.

BOOL GetEnabled();

Valore restituito

Diverso da zero se il controllo è abilitato; in caso contrario, 0.

COleControl::GetExtendedControl

Ottiene un puntatore a un oggetto gestito dal contenitore che rappresenta il controllo con un set esteso di proprietà.

LPDISPATCH GetExtendedControl();

Valore restituito

Puntatore all'oggetto di controllo esteso del contenitore. Se non è disponibile alcun oggetto, il valore è NULL.

Questo oggetto può essere modificato tramite la relativa IDispatch interfaccia. È anche possibile usare QueryInterface per ottenere altre interfacce disponibili fornite dall'oggetto . Tuttavia, l'oggetto non è necessario per supportare un set specifico di interfacce. Si noti che l'uso delle funzionalità specifiche dell'oggetto di controllo esteso di un contenitore limita la portabilità del controllo ad altri contenitori arbitrari.

Osservazioni:

La funzione che chiama questa funzione è responsabile del rilascio del puntatore al termine dell'oggetto . Si noti che il contenitore non è necessario per supportare questo oggetto.

COleControl::GetFocus

Determina se l'oggetto COleControl ha lo stato attivo.

CWnd* GetFocus();

Valore restituito

Se il controllo è attivato e senza finestra, restituisce this se il controllo ha attualmente lo stato attivo della tastiera (come determinato dal contenitore del controllo) o NULL se non ha lo stato attivo.

In caso contrario, restituisce l'oggetto CWnd con lo stato attivo (uguale a CWnd::GetFocus).

Osservazioni:

Un controllo senza finestra attivato riceve lo stato attivo quando viene chiamato SetFocus .

COleControl::GetFont

Implementa la funzione Get della proprietà Stock Font.

LPFONTDISP GetFont();

Valore restituito

Puntatore all'interfaccia dispatch del tipo di carattere della proprietà Font stock del controllo.

Osservazioni:

Si noti che il chiamante deve rilasciare l'oggetto al termine. All'interno dell'implementazione del controllo, utilizzare InternalGetFont per accedere all'oggetto Font stock del controllo. Per altre informazioni sull'uso dei tipi di carattere nel controllo, vedere l'articolo Controlli ActiveX: Uso dei tipi di carattere in un controllo ActiveX.

COleControl::GetFontTextMetrics

Misura le metriche di testo per qualsiasi CFontHolder oggetto di proprietà del controllo .

void GetFontTextMetrics(
    LPTEXTMETRIC lptm,
    CFontHolder& fontHolder);

Parametri

lptm
Puntatore a una struttura TEXTMETRIC .

FontHolder
Riferimento a un oggetto CFontHolder .

Osservazioni:

È possibile selezionare un tipo di carattere di questo tipo con la funzione COleControl::SelectFontObject . GetFontTextMetrics inizializza la TEXTMETRIC struttura a cui punta lptm con informazioni valide sul fontHoldertipo di carattere se ha esito positivo o riempie la struttura con zeri se l'operazione non riesce. È consigliabile usare questa funzione invece di GetTextMetrics quando si disegna il controllo perché i controlli, come qualsiasi oggetto OLE incorporato, potrebbero essere necessari per eseguire il rendering in un metafile.

La TEXTMETRIC struttura per il tipo di carattere predefinito viene aggiornata quando viene chiamata la funzione SelectFontObject . È consigliabile chiamare GetFontTextMetrics solo dopo aver selezionato la proprietà Stock Font per assicurarsi che le informazioni fornite siano valide.

COleControl::GetForeColor

Implementa la funzione Get della proprietà ForeColor stock.

OLE_COLOR GetForeColor();

Valore restituito

Il valore restituito specifica il colore di primo piano corrente come valore OLE_COLOR, se ha esito positivo. Questo valore può essere convertito in un valore COLORREF con una chiamata a TranslateColor.

COleControl::GetHwnd

Implementa la funzione Get della proprietà stock hWnd.

OLE_HANDLE GetHwnd();

Valore restituito

Handle della finestra del controllo OLE, se presente; in caso contrario NULL.

COleControl::GetMessageString

Chiamato dal framework per ottenere una stringa breve che descrive lo scopo della voce di menu identificata da nID.

virtual void GetMessageString(
    UINT nID,
    CString& rMessage) const;

Parametri

nID
ID voce di menu.

rMessage
Riferimento a un oggetto CString tramite il quale verrà restituita una stringa.

Osservazioni:

Può essere utilizzato per ottenere un messaggio per la visualizzazione in una barra di stato mentre la voce di menu è evidenziata. L'implementazione predefinita tenta di caricare una risorsa stringa identificata da nID.

COleControl::GetNotSupported

Impedisce l'accesso al valore della proprietà di un controllo da parte dell'utente.

void GetNotSupported();

Osservazioni:

Chiamare questa funzione al posto della funzione Get di qualsiasi proprietà in cui il recupero della proprietà dall'utente del controllo non è supportato. Un esempio è una proprietà che è solo scrittura.

COleControl::GetReadyState

Restituisce lo stato di conformità del controllo.

long GetReadyState();

Valore restituito

Lo stato di conformità del controllo, uno dei valori seguenti:

Nome Descrizione
READYSTATE_UNINITIALIZED Stato di inizializzazione predefinito
READYSTATE_LOADING Il controllo sta attualmente caricando le relative proprietà
READYSTATE_LOADED Il controllo è stato inizializzato
READYSTATE_INTERACTIVE Il controllo dispone di dati sufficienti per essere interattivi, ma non tutti i dati asincroni vengono ancora caricati
READYSTATE_COMPLETE Controllo ha tutti i relativi dati

Osservazioni:

La maggior parte dei controlli semplici non deve mai distinguere tra LOADED e INTERACTIVE. Tuttavia, i controlli che supportano le proprietà del percorso dati potrebbero non essere pronti per essere interattivi finché almeno alcuni dati non vengono ricevuti in modo asincrono. Un controllo deve tentare di diventare interattivo il prima possibile.

COleControl::GetRectInContainer

Ottiene le coordinate del rettangolo del controllo rispetto al contenitore, espresso in unità dispositivo.

BOOL GetRectInContainer(LPRECT lpRect);

Parametri

lpRect
Puntatore alla struttura del rettangolo in cui verranno copiate le coordinate del controllo.

Valore restituito

Diverso da zero se il controllo è attivo sul posto; in caso contrario, 0.

Osservazioni:

Il rettangolo è valido solo se il controllo è attivo sul posto.

COleControl::GetStockTextMetrics

Misura le metriche di testo per la proprietà Font stock del controllo, che può essere selezionata con la funzione SelectStockFont .

void GetStockTextMetrics(LPTEXTMETRIC lptm);

Parametri

lptm
Puntatore a una struttura TEXTMETRIC .

Osservazioni:

La GetStockTextMetrics funzione inizializzerà la TEXTMETRIC struttura a cui punta lptm con informazioni sulle metriche valide se ha esito positivo o riempirà la struttura con zeri se non riesce. Usare questa funzione invece di GetTextMetrics quando si esegue il disegno del controllo perché i controlli, come qualsiasi oggetto OLE incorporato, potrebbero essere necessari per eseguire il rendering in un metafile.

La TEXTMETRIC struttura per il tipo di carattere predefinito viene aggiornata quando viene chiamata la SelectStockFont funzione . È consigliabile chiamare questa funzione solo dopo aver selezionato il tipo di carattere stock per assicurarsi che le informazioni fornite siano valide.

COleControl::GetText

Implementa la funzione Get della proprietà Stock Text o Caption.

BSTR GetText();

Valore restituito

Valore corrente della stringa di testo del controllo o stringa di lunghezza zero se non è presente alcuna stringa.

Nota

Per altre informazioni sul tipo di dati BSTR, vedere Tipi di dati nella sezione Macro e Globals.

Osservazioni:

Si noti che il chiamante di questa funzione deve chiamare SysFreeString sulla stringa restituita per liberare la risorsa. All'interno dell'implementazione del controllo, utilizzare InternalGetText per accedere alla proprietà Testo o Didascalia del controllo.

COleControl::GetWindowlessDropTarget

Eseguire l'override GetWindowlessDropTarget quando si desidera che un controllo senza finestra sia la destinazione di un'operazione di trascinamento e rilascio OLE.

virtual IDropTarget* GetWindowlessDropTarget();

Valore restituito

Puntatore all'interfaccia dell'oggetto IDropTarget . Poiché non dispone di una finestra, un oggetto senza finestra non può registrare un'interfaccia IDropTarget . Tuttavia, per partecipare al trascinamento della selezione, un oggetto senza finestra può comunque implementare l'interfaccia e restituirlo in GetWindowlessDropTarget.

Osservazioni:

In genere, ciò richiede che la finestra del controllo sia stata registrata come obiettivo di rilascio. Tuttavia, poiché il controllo non ha una finestra di propria proprietà, il contenitore userà la propria finestra come destinazione di rilascio. Il controllo deve semplicemente fornire un'implementazione dell'interfaccia IDropTarget a cui il contenitore può delegare le chiamate al momento appropriato. Ad esempio:

IDropTarget *CMyAxCtrl::GetWindowlessDropTarget()
{
   m_xDropTarget.AddRef();
   return &m_xDropTarget;
}

COleControl::InitializeIDs

Informa la classe di base degli ID di base che il controllo userà.

void InitializeIIDs(
    const IID* piidPrimary,
    const IID* piidEvents);

Parametri

piidPrimary
Puntatore all'ID interfaccia dell'interfaccia dispatch primaria del controllo.

piidEvents
Puntatore all'ID interfaccia dell'interfaccia evento del controllo.

Osservazioni:

Chiamare questa funzione nel costruttore del controllo per informare la classe di base degli ID di interfaccia che verranno usati dal controllo.

COleControl::InternalGetFont

Accede alla proprietà Stock Font del controllo

CFontHolder& InternalGetFont();

Valore restituito

Riferimento a un oggetto CFontHolder che contiene l'oggetto Font stock.

COleControl::InternalGetText

Accede alla proprietà Stock Text o Caption del controllo.

const CString& InternalGetText();

Valore restituito

Riferimento alla stringa di testo del controllo.

COleControl::InternalSetReadyState

Imposta lo stato di idoneità del controllo.

void InternalSetReadyState(long lNewReadyState);

Parametri

lNewReadyState
Stato di conformità da impostare per il controllo, uno dei valori seguenti:

Nome Descrizione
READYSTATE_UNINITIALIZED Stato di inizializzazione predefinito
READYSTATE_LOADING Il controllo sta attualmente caricando le relative proprietà
READYSTATE_LOADED Il controllo è stato inizializzato
READYSTATE_INTERACTIVE Il controllo dispone di dati sufficienti per essere interattivi, ma non tutti i dati asincroni vengono ancora caricati
READYSTATE_COMPLETE Controllo ha tutti i relativi dati

Osservazioni:

La maggior parte dei controlli semplici non deve mai distinguere tra LOADED e INTERACTIVE. Tuttavia, i controlli che supportano le proprietà del percorso dati potrebbero non essere pronti per essere interattivi finché almeno alcuni dati non vengono ricevuti in modo asincrono. Un controllo deve tentare di diventare interattivo il prima possibile.

COleControl::InvalidateControl

Forza il controllo a ridisegnarsi.

void InvalidateControl(
    LPCRECT lpRect = NULL,
    BOOL bErase = TRUE);

Parametri

lpRect
Puntatore all'area del controllo da invalidare.

bErase
Specifica se lo sfondo all'interno dell'area di aggiornamento deve essere cancellato quando viene elaborata l'area di aggiornamento.

Osservazioni:

Se lpRect ha un valore NULL, verrà ridisegnato l'intero controllo. Se lpRect non è NULL, indica la parte del rettangolo del controllo da invalidare. Nei casi in cui il controllo non dispone di una finestra o non è attualmente attivo, il rettangolo viene ignorato e viene effettuata una chiamata alla funzione membro IAdviseSink::OnViewChange del sito client. Usare questa funzione invece di CWnd::InvalidateRect o InvalidateRect.

COleControl::InvalidateRgn

Invalida l'area client della finestra del contenitore all'interno dell'area specificata.

void InvalidateRgn(CRgn* pRgn, BOOL bErase = TRUE);

Parametri

pRgn
Puntatore a un oggetto CRgn che identifica l'area di visualizzazione dell'oggetto OLE da invalidare, nelle coordinate client della finestra contenitore. Se questo parametro è NULL, l'extent è l'intero oggetto.

bErase
Specifica se lo sfondo all'interno dell'area invalidata deve essere cancellato. Se TRUE, lo sfondo viene cancellato. Se FALSE, lo sfondo rimane invariato.

Osservazioni:

Può essere usato per ridisegnare i controlli senza finestra all'interno del contenitore. L'area invalidata, insieme a tutte le altre aree nell'area di aggiornamento, viene contrassegnata per disegnare quando viene inviato il messaggio di WM_PAINT successivo.

Se bErase è TRUE per qualsiasi parte dell'area di aggiornamento, lo sfondo nell'intera area, non solo nella parte specificata, viene cancellato.

COleControl::IsConvertingVBX

Consente il caricamento specializzato di un controllo OLE.

BOOL IsConvertingVBX();

Valore restituito

Diverso da zero se il controllo viene convertito; in caso contrario, 0.

Osservazioni:

Quando si converte un modulo che utilizza controlli VBX in uno che utilizza controlli OLE, potrebbe essere necessario un codice di caricamento speciale per i controlli OLE. Ad esempio, se si carica un'istanza del controllo OLE, potrebbe essere presente una chiamata a PX_Font in DoPropExchange:

PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);

Tuttavia, i controlli VBX non hanno un oggetto Font; ogni proprietà del tipo di carattere è stata salvata singolarmente. In questo caso, si userà IsConvertingVBX per distinguere tra questi due casi:

if (!IsConvertingVBX())
{
   PX_Font(pPX, _T("Font"), *m_pMyFont, &DefaultFont);
}
else
{
   PX_String(pPX, _T("FontName"), tempString, DefaultName);
   m_pMyFont->m_pFont->put_Name(tempString.AllocSysString());
   PX_Bool(pPX, _T("FontUnderline"), tempBool, DefaultValue);
   m_pMyFont->m_pFont->put_Underline(tempBool);
}

Un altro caso consiste nel caso in cui il controllo VBX abbia salvato dati binari proprietari (nel relativo gestore messaggi VBM_SAVEPROPERTY) e il controllo OLE salva i dati binari in un formato diverso. Se si desidera che il controllo OLE sia compatibile con le versioni precedenti con il controllo VBX, è possibile leggere entrambi i formati precedenti e nuovi usando la IsConvertingVBX funzione distinguendo se il controllo VBX o il controllo OLE è in fase di caricamento.

Nella funzione del controllo è possibile verificare la presenza di DoPropExchange questa condizione e, se true, eseguire il codice di caricamento specifico di questa conversione, ad esempio gli esempi precedenti. Se il controllo non viene convertito, è possibile eseguire il normale codice di caricamento. Questa possibilità è applicabile solo ai controlli convertiti da controparti VBX.

COleControl::IsInvokeAllowed

Abilita la chiamata al metodo di automazione.

BOOL IsInvokeAllowed(DISPID dispid);

Valore restituito

Diverso da zero se il controllo è stato inizializzato; in caso contrario, 0.

Osservazioni:

L'implementazione del framework di IDispatch::Invoke chiamate IsInvokeAllowed per determinare se una determinata funzione (identificata da dispid) può essere richiamata. Il comportamento predefinito per un controllo OLE consiste nell'consentire la chiamata dei metodi di automazione solo se il controllo è stato inizializzato; tuttavia, IsInvokeAllowed è una funzione virtuale e può essere sottoposto a override, se necessario , ad esempio quando il controllo viene usato come server di automazione.

COleControl::IsModified

Determina se lo stato del controllo è stato modificato.

BOOL IsModified();

Valore restituito

Diverso da zero se lo stato del controllo è stato modificato dopo l'ultimo salvataggio; in caso contrario, 0.

Osservazioni:

Lo stato di un controllo viene modificato quando una proprietà cambia valore.

COleControl::IsOptimizedDraw

Determina se il contenitore supporta il disegno ottimizzato per l'operazione di disegno corrente.

BOOL IsOptimizedDraw();

Valore restituito

TRUE se il contenitore supporta il disegno ottimizzato per l'operazione di disegno corrente; in caso contrario FALSE.

Osservazioni:

Se il disegno ottimizzato è supportato, il controllo non deve selezionare oggetti obsoleti (penne, pennelli, tipi di carattere e così via) nel contesto del dispositivo al termine del disegno.

COleControl::IsSubclassedControl

Chiamato dal framework per determinare se il controllo sottoclassa un controllo Windows.

virtual BOOL IsSubclassedControl();

Valore restituito

Diverso da zero se il controllo è sottoclassato; in caso contrario, 0.

Osservazioni:

È necessario eseguire l'override di questa funzione e restituire TRUE se il controllo OLE sottoclassa un controllo Windows.

COleControl::Load

Reimposta i dati precedenti caricati in modo asincrono e avvia un nuovo caricamento della proprietà asincrona del controllo.

void Load(LPCTSTR strNewPath, CDataPathProperty& prop);

Parametri

strNewPath
Puntatore a una stringa contenente il percorso che fa riferimento alla posizione assoluta della proprietà del controllo asincrono.

puntello
Oggetto CDataPathProperty che implementa una proprietà di controllo asincrona.

COleControl::LockInPlaceActive

Impedisce al contenitore di disattivare il controllo.

BOOL LockInPlaceActive(BOOL bLock);

Parametri

blocco
TRUE se lo stato attivo sul posto del controllo deve essere bloccato; FALSE se deve essere sbloccato.

Valore restituito

Diverso da zero se il blocco ha avuto esito positivo; in caso contrario, 0.

Osservazioni:

Si noti che ogni blocco del controllo deve essere associato a uno sblocco del controllo al termine. È consigliabile bloccare il controllo solo per brevi periodi, ad esempio durante la generazione di un evento.

COleControl::OnAmbientPropertyChange

Chiamato dal framework quando una proprietà di ambiente del contenitore è stata modificata.

virtual void OnAmbientPropertyChange(DISPID dispid);

Parametri

dispID
ID dispatch della proprietà di ambiente modificata o DISPID_UNKNOWN se sono state modificate più proprietà.

COleControl::OnAppearanceChanged

Chiamato dal framework quando il valore della proprietà Aspetto azionario è stato modificato.

virtual void OnAppearanceChanged ();

Osservazioni:

Eseguire l'override di questa funzione se si desidera inviare una notifica dopo la modifica di questa proprietà. L'implementazione predefinita chiama InvalidateControl.

COleControl::OnBackColorChanged

Chiamato dal framework quando il valore della proprietà Stock BackColor è stato modificato.

virtual void OnBackColorChanged();

Osservazioni:

Eseguire l'override di questa funzione se si desidera inviare una notifica dopo la modifica di questa proprietà. L'implementazione predefinita chiama InvalidateControl.

COleControl::OnBorderStyleChanged

Chiamato dal framework quando il valore della proprietà BorderStyle stock è stato modificato.

virtual void OnBorderStyleChanged();

Osservazioni:

L'implementazione predefinita chiama InvalidateControl.

Eseguire l'override di questa funzione se si desidera inviare una notifica dopo la modifica di questa proprietà.

COleControl::OnClick

Chiamato dal framework quando è stato fatto clic su un pulsante del mouse o è stato richiamato il metodo di azioni DoClick.

virtual void OnClick(USHORT iButton);

Parametri

iButton
Indice di un pulsante del mouse. I valori consentiti sono i seguenti:

  • LEFT_BUTTON è stato fatto clic sul pulsante sinistro del mouse.

  • MIDDLE_BUTTON È stato fatto clic sul pulsante centrale del mouse.

  • RIGHT_BUTTON è stato fatto clic sul pulsante destro del mouse.

Osservazioni:

L'implementazione predefinita chiama COleControl::FireClick.

Eseguire l'override di questa funzione membro per modificare o estendere la gestione predefinita.

COleControl::OnClose

Chiamato dal framework quando il contenitore ha chiamato la funzione del IOleControl::Close controllo.

virtual void OnClose(DWORD dwSaveOption);

Parametri

dwSaveOption
Flag che indica se l'oggetto deve essere salvato prima del caricamento. I valori validi sono:

  • OLECLOSE_SAVEIFDIRTY

  • OLECLOSE_NOSAVE

  • OLECLOSE_PROMPTSAVE

Osservazioni:

Per impostazione predefinita, OnClose salva l'oggetto controllo se è stato modificato e dwSaveOption è OLECLOSE_SAVEIFDIRTY o OLECLOSE_PROMPTSAVE.

COleControl::OnDoVerb

Chiamato dal framework quando il contenitore chiama la IOleObject::DoVerb funzione membro.

virtual BOOL OnDoVerb(
    LONG iVerb,
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametri

iVerb
Indice del verbo di controllo da richiamare.

lpMsg
Puntatore al messaggio di Windows che ha causato la chiamata del verbo.

hWndParent
Handle per la finestra padre del controllo. Se l'esecuzione del verbo crea una finestra (o finestre), hWndParent deve essere usato come elemento padre.

lpRect
Puntatore a una struttura RECT in cui verranno copiate le coordinate del controllo rispetto al contenitore.

Valore restituito

Diverso da zero se la chiamata ha avuto esito positivo; in caso contrario, 0.

Osservazioni:

L'implementazione predefinita usa le ON_OLEVERB e ON_STDOLEVERB voci della mappa messaggi per determinare la funzione appropriata da richiamare.

Eseguire l'override di questa funzione per modificare la gestione predefinita del verbo.

COleControl::OnDraw

Chiamato dal framework per disegnare il controllo OLE nel rettangolo di delimitazione specificato usando il contesto di dispositivo specificato.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rcBounds,
    const CRect& rcInvalid);

Parametri

pDC
Contesto del dispositivo in cui si verifica il disegno.

rcBounds
Area rettangolare del controllo, incluso il bordo.

rcInvalid
Area rettangolare del controllo non valida.

Osservazioni:

OnDraw viene in genere chiamato per la visualizzazione dello schermo, passando un contesto di dispositivo dello schermo come pDC. Il parametro rcBounds identifica il rettangolo nel contesto del dispositivo di destinazione (rispetto alla modalità di mapping corrente). Il parametro rcInvalid è il rettangolo effettivo non valido. In alcuni casi si tratta di un'area più piccola rispetto a rcBounds.

COleControl::OnDrawMetafile

Chiamato dal framework per disegnare il controllo OLE nel rettangolo di delimitazione specificato usando il contesto di dispositivo del metafile specificato.

virtual void OnDrawMetafile(
    CDC* pDC,
    const CRect& rcBounds);

Parametri

pDC
Contesto del dispositivo in cui si verifica il disegno.

rcBounds
Area rettangolare del controllo, incluso il bordo.

Osservazioni:

L'implementazione predefinita chiama la funzione OnDraw .

COleControl::OnEdit

Fa sì che il controllo sia attivato dall'interfaccia utente.

virtual BOOL OnEdit(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametri

lpMsg
Puntatore al messaggio di Windows che ha richiamato il verbo.

hWndParent
Handle per la finestra padre del controllo.

lpRect
Puntatore al rettangolo utilizzato dal controllo nel contenitore.

Valore restituito

Diverso da zero se la chiamata ha esito positivo; in caso contrario, 0.

Osservazioni:

Ciò ha lo stesso effetto di richiamare il verbo di OLEIVERB_UIACTIVATE del controllo.

Questa funzione viene in genere usata come funzione del gestore per una voce della mappa dei messaggi ON_OLEVERB. Questo rende disponibile un verbo "Modifica" nel menu "Oggetto" del controllo. Ad esempio:

ON_OLEVERB(AFX_IDS_VERB_EDIT, OnEdit)

COleControl::OnEnabledChanged

Chiamato dal framework quando il valore della proprietà Enabled è stato modificato.

virtual void OnEnabledChanged();

Osservazioni:

Eseguire l'override di questa funzione se si desidera inviare una notifica dopo la modifica di questa proprietà. L'implementazione predefinita chiama InvalidateControl.

COleControl::OnEnumVerbs

Chiamato dal framework quando il contenitore chiama la IOleObject::EnumVerbs funzione membro.

virtual BOOL OnEnumVerbs(LPENUMOLEVERB* ppenumOleVerb);

Parametri

ppenumOleVerb
Puntatore all'oggetto IEnumOLEVERB che enumera i verbi del controllo.

Valore restituito

Diverso da zero se sono disponibili verbi; in caso contrario, 0.

Osservazioni:

L'implementazione predefinita enumera le voci ON_OLEVERB nella mappa dei messaggi.

Eseguire l'override di questa funzione per modificare il modo predefinito di enumerare i verbi.

COleControl::OnEventAdvise

Chiamato dal framework quando un gestore eventi è connesso o disconnesso da un controllo OLE.

virtual void OnEventAdvise(BOOL bAdvise);

Parametri

bAdvise
TRUE indica che un gestore eventi è stato connesso al controllo . FALSE indica che un gestore eventi è stato disconnesso dal controllo .

COleControl::OnFontChanged

Chiamato dal framework quando il valore della proprietà Font stock è stato modificato.

virtual void OnFontChanged();

Osservazioni:

L'implementazione predefinita chiama COleControl::InvalidateControl. Se il controllo sottoclassa un controllo Windows, l'implementazione predefinita invia anche un messaggio di WM_SETFONT alla finestra del controllo.

Eseguire l'override di questa funzione se si desidera inviare una notifica dopo la modifica di questa proprietà.

Esempio

void CMyAxCtrl::OnFontChanged()
{
   // Always set it to the container's font
   if (m_MyEdit.m_hWnd != NULL)
   {
      IFontDisp *pFontDisp = NULL;
      IFont *pFont = NULL;
      HRESULT hr;

      // Get the container's FontDisp interface
      pFontDisp = AmbientFont();
      if (pFontDisp)
      {
         hr = pFontDisp->QueryInterface(IID_IFont, (LPVOID*)&pFont);
         if (FAILED(hr))
         {
            pFontDisp->Release();
            return;
         }
      }

      HFONT hFont = NULL;
      if (pFont)
      {
         pFont->get_hFont(&hFont);
         m_MyEdit.SendMessage(WM_SETFONT, (WPARAM)hFont, 0L);
      }

      pFontDisp->Release();
   }

   // Invalidate the control
   m_MyEdit.Invalidate();
   m_MyEdit.UpdateWindow();

   COleControl::OnFontChanged();
}

COleControl::OnForeColorChanged

Chiamato dal framework quando il valore della proprietà ForeColor azionario è stato modificato.

virtual void OnForeColorChanged();

Osservazioni:

L'implementazione predefinita chiama InvalidateControl.

Eseguire l'override di questa funzione se si desidera inviare una notifica dopo la modifica di questa proprietà.

COleControl::OnFreezeEvents

Chiamato dal framework dopo che il contenitore chiama IOleControl::FreezeEvents.

virtual void OnFreezeEvents(BOOL bFreeze);

Parametri

bFreeze
TRUE se la gestione degli eventi del controllo è bloccata; in caso contrario FALSE.

Osservazioni:

L'implementazione predefinita non esegue alcuna operazione.

Eseguire l'override di questa funzione se si desidera un comportamento aggiuntivo quando la gestione degli eventi è bloccata o non è bloccata.

COleControl::OnGetColorSet

Chiamato dal framework quando il contenitore chiama la IViewObject::GetColorSet funzione membro.

virtual BOOL OnGetColorSet(
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    LPLOGPALETTE* ppColorSet);

Parametri

Ptd
Punta al dispositivo di destinazione per il quale deve essere eseguito il rendering dell'immagine. Se questo valore è NULL, il rendering dell'immagine deve essere eseguito per un dispositivo di destinazione predefinito, in genere un dispositivo di visualizzazione.

hicTargetDev
Specifica il contesto informativo nel dispositivo di destinazione indicato da ptd. Questo parametro può essere un contesto di dispositivo, ma non è necessariamente uno. Se ptd è NULL, anche hicTargetDev deve essere NULL.

ppColorSet
Puntatore alla posizione in cui copiare il set di colori da copiare. Se la funzione non restituisce il set di colori, viene restituito NULL.

Valore restituito

Diverso da zero se viene restituito un set di colori valido; in caso contrario, 0.

Osservazioni:

Il contenitore chiama questa funzione per ottenere tutti i colori necessari per disegnare il controllo OLE. Il contenitore può usare i set di colori ottenuti insieme ai colori necessari per impostare la tavolozza dei colori complessiva. L'implementazione predefinita restituisce FALSE.

Eseguire l'override di questa funzione per eseguire qualsiasi elaborazione speciale di questa richiesta.

COleControl::OnGetControlInfo

Chiamato dal framework quando il contenitore del controllo ha richiesto informazioni sul controllo.

virtual void OnGetControlInfo(LPCONTROLINFO pControlInfo);

Parametri

pControlInfo
Puntatore a una struttura CONTROLINFO da inserire.

Osservazioni:

Queste informazioni sono costituite principalmente da una descrizione delle chiavi mnemonic del controllo. L'implementazione predefinita riempie pControlInfo con informazioni predefinite.

Eseguire l'override di questa funzione se il controllo deve elaborare le chiavi mnemonic.

COleControl::OnGetDisplayString

Chiamato dal framework per ottenere una stringa che rappresenta il valore corrente della proprietà identificata da dispid.

virtual BOOL OnGetDisplayString(
    DISPID dispid,
    CString& strValue);

Parametri

dispid
L'ID di invio di una proprietà del controllo.

strValue
Riferimento a un oggetto CString tramite il quale verrà restituita una stringa.

Valore restituito

Diverso da zero se una stringa è stata restituita in strValue; in caso contrario, 0.

Osservazioni:

Eseguire l'override di questa funzione se il controllo dispone di una proprietà il cui valore non può essere convertito direttamente in una stringa e si desidera che il valore della proprietà venga visualizzato in un browser delle proprietà fornito dal contenitore.

COleControl::OnGetInPlaceMenu

Chiamato dal framework quando il controllo è attivato dall'interfaccia utente per ottenere il menu da unire nel menu esistente del contenitore.

virtual HMENU OnGetInPlaceMenu();

Valore restituito

Handle del menu del controllo o NULL se il controllo non dispone di nessuno. L'implementazione predefinita restituisce NULL.

Osservazioni:

Per altre informazioni sull'unione di risorse OLE, vedere l'articolo Menu e risorse (OLE).

COleControl::OnGetNaturalextent

Chiamato dal framework in risposta alla richiesta di IViewObjectEx::GetNaturalExtent un contenitore.

virtual BOOL OnGetNaturalExtent(
    DWORD dwAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    HDC hicTargetDev,
    DVEXTENTINFO* pExtentInfo,
    LPSIZEL psizel);

Parametri

dwAspect
Specifica la modalità con cui l'oggetto deve essere rappresentato. Le rappresentazioni includono contenuto, un'icona, un'anteprima o un documento stampato. I valori validi vengono ricavati dall'enumerazione DVASPECT o DVASPECT2.

lindex
Parte dell'oggetto di interesse. Attualmente solo -1 è valido.

Ptd
Punta alla struttura DVTARGETDEVICE che definisce il dispositivo di destinazione per il quale devono essere restituite le dimensioni dell'oggetto.

hicTargetDev
Specifica il contesto delle informazioni per il dispositivo di destinazione indicato dal parametro ptd da cui l'oggetto può estrarre le metriche del dispositivo e testare le funzionalità del dispositivo. Se ptd è NULL, l'oggetto deve ignorare il valore nel parametro hicTargetDev .

pExtentInfo
Punta alla DVEXTENTINFO struttura che specifica i dati di ridimensionamento. La DVEXTENTINFO struttura è:

typedef struct tagExtentInfo
{
    UINT cb;
    DWORD dwExtentMode;
    SIZEL sizelProposed;
}   DVEXTENTINFO;

Il membro dwExtentMode della struttura può accettare uno dei due valori seguenti:

  • DVEXTENT_CONTENT Chiedere quanto grande deve essere il controllo per adattare esattamente il contenuto (snap-to-size)

  • DVEXTENT_INTEGRAL Durante il ridimensionamento, passare le dimensioni proposte al controllo

psizel
Punta ai dati di ridimensionamento restituiti dal controllo . I dati di ridimensionamento restituiti sono impostati su -1 per qualsiasi dimensione non modificata.

Valore restituito

Diverso da zero se restituisce o regola correttamente le dimensioni; in caso contrario, 0.

Osservazioni:

Eseguire l'override di questa funzione per restituire le dimensioni di visualizzazione dell'oggetto più vicine alle dimensioni proposte ed ex modalità tenda nella DVEXTENTINFO struttura. L'implementazione predefinita restituisce FALSE e non apporta modifiche alle dimensioni.

COleControl::OnGetPredefinedStrings

Chiamato dal framework per ottenere un set di stringhe predefinite che rappresentano i valori possibili per una proprietà.

virtual BOOL OnGetPredefinedStrings(
    DISPID dispid,
    CStringArray* pStringArray,
    CDWordArray* pCookieArray);

Parametri

dispid
L'ID di invio di una proprietà del controllo.

pStringArray
Matrice di stringhe da compilare con valori restituiti.

pCookieArray
Matrice DWORD da compilare con valori restituiti.

Valore restituito

Diverso da zero se gli elementi sono stati aggiunti a pStringArray e pCookieArray.

Osservazioni:

Eseguire l'override di questa funzione se il controllo dispone di una proprietà con un set di valori possibili che possono essere rappresentati da stringhe. Per ogni elemento aggiunto a pStringArray, è necessario aggiungere un elemento "cookie" corrispondente a pCookieArray. Questi valori "cookie" possono essere passati successivamente dal framework alla COleControl::OnGetPredefinedValue funzione.

COleControl::OnGetPredefinedValue

Chiamato dal framework per ottenere il valore corrispondente a una delle stringhe predefinite restituite in precedenza da un override di COleControl::OnGetPredefinedStrings.

virtual BOOL OnGetPredefinedValue(
    DISPID dispid,
    DWORD dwCookie,
    VARIANT* lpvarOut);

Parametri

dispid
L'ID di invio di una proprietà del controllo.

dwCookie
Valore del cookie restituito in precedenza da un override di COleControl::OnGetPredefinedStrings.

lpvarOut
Puntatore a una VARIANT struttura tramite cui verrà restituito un valore della proprietà.

Valore restituito

Diverso da zero se un valore è stato restituito in lpvarOut; in caso contrario, 0.

COleControl::OnGetViewExtent

Chiamato dal framework in risposta alla richiesta IViewObject2::GetExtent di un contenitore.

virtual BOOL OnGetViewExtent(
    DWORD dwDrawAspect,
    LONG lindex,
    DVTARGETDEVICE* ptd,
    LPSIZEL lpsizel);

Parametri

dwDrawAspect
DWORD che descrive quale forma, o aspetto, di un oggetto deve essere visualizzato. I valori validi vengono ricavati dall'enumerazione DVASPECT o DVASPECT2.

lindex
Parte dell'oggetto di interesse. Attualmente solo -1 è valido.

Ptd
Punta alla struttura DVTARGETDEVICE che definisce il dispositivo di destinazione per il quale devono essere restituite le dimensioni dell'oggetto.

lpsizel
Punta alla posizione in cui vengono restituite le dimensioni dell'oggetto.

Valore restituito

Diverso da zero se le informazioni sull'extent vengono restituite correttamente; in caso contrario, 0.

Osservazioni:

Eseguire l'override di questa funzione se il controllo utilizza un disegno a due passaggi e le relative parti opache e trasparenti hanno dimensioni diverse.

COleControl::OnGetViewRect

Chiamato dal framework in risposta alla richiesta di IViewObjectEx::GetRect un contenitore.

virtual BOOL OnGetViewRect(DWORD dwAspect, LPRECTL pRect);

Parametri

dwAspect
DWORD che descrive quale forma, o aspetto, di un oggetto deve essere visualizzato. I valori validi vengono ricavati dall'enumerazione DVASPECT o DVASPECT2:

  • DVASPECT_CONTENT rettangolo di delimitazione dell'intero oggetto. Angolo superiore sinistro all'origine dell'oggetto e dimensioni uguali all'extent restituito da GetViewExtent.

  • DVASPECT_OPAQUE Oggetti con un'area opaca rettangolare restituiscono tale rettangolo. Altri non riescono.

  • DVASPECT_TRANSPARENT Rettangolo che copre tutte le parti trasparenti o irregolari.

pRect
Punta alla struttura RECTL specificando il rettangolo in cui deve essere disegnato l'oggetto. Questo parametro controlla il posizionamento e l'estensione dell'oggetto.

Valore restituito

Diverso da zero se il rettangolo ridimensionato all'oggetto viene restituito correttamente; in caso contrario, 0.

Osservazioni:

Le dimensioni dell'oggetto vengono convertite da in un rettangolo a partire da OnGetViewRect una posizione specifica (il valore predefinito è l'angolo superiore sinistro della visualizzazione). Eseguire l'override di questa funzione se il controllo utilizza un disegno a due passaggi e le relative parti opache e trasparenti hanno dimensioni diverse.

COleControl::OnGetViewStatus

Chiamato dal framework in risposta alla richiesta di IViewObjectEx::GetViewStatus un contenitore.

virtual DWORD OnGetViewStatus();

Valore restituito

Uno dei valori dell'enumerazione VIEWSTATUS se ha esito positivo; in caso contrario, 0. I valori possibili sono una delle seguenti combinazioni:

Nome Descrizione
VIEWSTATUS_OPAQUE L'oggetto è completamente opaco. Se questo bit non è impostato, l'oggetto contiene parti trasparenti. Questo bit si applica solo agli aspetti correlati al contenuto e non a DVASPECT_ICON o DVASPECT_DOCPRINT.
VIEWSTATUS_SOLIDBKGND L'oggetto ha uno sfondo a tinta unita (costituito da un colore a tinta unita, non da un motivo pennello). Questo bit è significativo solo se VIEWSTATUS_OPAQUE è impostato e si applica solo agli aspetti correlati al contenuto e non a DVASPECT_ICON o DVASPECT_DOCPRINT.
VIEWSTATUS_DVASPECTOPAQUE L'oggetto supporta DVASPECT_OPAQUE. Tutti i metodi IViewObjectEx che accettano un aspetto di disegno come parametro possono essere chiamati con questo aspetto.
VIEWSTATUS_DVASPECTTRANSPARENT L'oggetto supporta DVASPECT_TRANSPARENT. Tutti i IViewObjectEx metodi che accettano un aspetto di disegno come parametro possono essere chiamati con questo aspetto.

Osservazioni:

Eseguire l'override di questa funzione se il controllo utilizza il disegno a due passaggi. L'implementazione predefinita restituisce VIEWSTATUS_OPAQUE.

COleControl::OnHideToolBars

Chiamato dal framework quando il controllo è disattivato dall'interfaccia utente.

virtual void OnHideToolBars();

Osservazioni:

L'implementazione deve nascondere tutte le barre degli strumenti visualizzate da OnShowToolbars.

COleControl::OnInactiveMouseMove

Chiamato dal contenitore per l'oggetto inattivo sotto il puntatore del mouse alla ricezione di un messaggio di WM_MOUSEMOVE.

virtual void OnInactiveMouseMove(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwKeyState);

Parametri

lprcBounds
Rettangolo di delimitazione dell'oggetto, nelle coordinate client della finestra contenitore. Indica all'oggetto la posizione e le dimensioni esatte sullo schermo quando è stato ricevuto il messaggio WM_MOUSEMOVE.

x
Coordinata x della posizione del mouse nelle coordinate client della finestra contenitore.

y
Coordinata y della posizione del mouse nelle coordinate client della finestra contenitore.

dwKeyState
Identifica lo stato corrente dei tasti di modifica della tastiera sulla tastiera. I valori validi possono essere una combinazione di qualsiasi flag MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON e MK_RBUTTON.

Osservazioni:

Si noti che le coordinate client della finestra (pixel) vengono usate per passare la posizione del cursore del mouse. Ciò è reso possibile anche passando il rettangolo di delimitazione dell'oggetto nello stesso sistema di coordinate.

COleControl::OnInactiveSetCursor

Chiamato dal contenitore per l'oggetto inattivo sotto il puntatore del mouse alla ricezione di un messaggio di WM_SETCURSOR.

virtual BOOL OnInactiveSetCursor(
    LPCRECT lprcBounds,
    long x,
    long y,
    DWORD dwMouseMsg,
    BOOL bSetAlways);

Parametri

lprcBounds
Rettangolo di delimitazione dell'oggetto, nelle coordinate client della finestra contenitore. Indica all'oggetto la posizione esatta e le dimensioni sullo schermo quando è stato ricevuto il messaggio WM_SETCURSOR.

x
Coordinata x della posizione del mouse nelle coordinate client della finestra contenitore.

y
Coordinata y della posizione del mouse nelle coordinate client della finestra contenitore.

dwMouseMsg
Identificatore del messaggio del mouse per il quale si è verificato un WM_SETCURSOR.

bSetAlways
Specifica se l'oggetto deve impostare o meno il cursore. Se TRUE, l'oggetto deve impostare il cursore; se FALSE, il cursore non è obbligato a impostare il cursore e deve restituire S_FALSE in tal caso.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Si noti che le coordinate client della finestra (pixel) vengono usate per passare la posizione del cursore del mouse. Ciò è reso possibile anche passando il rettangolo di delimitazione dell'oggetto nello stesso sistema di coordinate.

COleControl::OnKeyDownEvent

Chiamato dal framework dopo l'elaborazione di un evento KeyDown azionario.

virtual void OnKeyDownEvent(
    USHORT nChar,
    USHORT nShiftState);

Parametri

nChar
Valore del codice della chiave virtuale del tasto premuto. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h

nShiftState
Contiene una combinazione dei flag seguenti:

  • SHIFT_MASK Il tasto MAIUSC è stato premuto durante l'azione.

  • CTRL_MASK Il tasto CTRL è stato premuto durante l'azione.

  • ALT_MASK Il tasto ALT è stato premuto durante l'azione.

Osservazioni:

Eseguire l'override di questa funzione se il controllo deve accedere alle informazioni sulla chiave dopo che l'evento è stato generato.

COleControl::OnKeyPressEvent

Chiamato dal framework dopo che è stato generato l'evento Stock KeyPress.

virtual void OnKeyPressEvent(USHORT nChar);

Parametri

nChar
Contiene il valore del codice della chiave virtuale premuto. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h

Osservazioni:

Si noti che il valore nChar potrebbe essere stato modificato dal contenitore.

Eseguire l'override di questa funzione se si vuole notificare dopo che si verifica questo evento.

COleControl::OnKeyUpEvent

Chiamato dal framework dopo l'elaborazione di un evento KeyDown azionario.

virtual void OnKeyUpEvent(
    USHORT nChar,
    USHORT nShiftState);

Parametri

nChar
Valore del codice della chiave virtuale del tasto premuto. Per un elenco dei codici di chiave virtuale standard, vedere Winuser.h

nShiftState
Contiene una combinazione dei flag seguenti:

  • SHIFT_MASK Il tasto MAIUSC è stato premuto durante l'azione.

  • CTRL_MASK Il tasto CTRL è stato premuto durante l'azione.

  • ALT_MASK Il tasto ALT è stato premuto durante l'azione.

Osservazioni:

Eseguire l'override di questa funzione se il controllo deve accedere alle informazioni sulla chiave dopo che l'evento è stato generato.

COleControl::OnMapPropertyToPage

Chiamato dal framework per ottenere l'ID classe di una pagina delle proprietà che implementa la modifica della proprietà specificata.

virtual BOOL OnMapPropertyToPage(
    DISPID dispid,
    LPCLSID lpclsid,
    BOOL* pbPageOptional);

Parametri

dispid
L'ID di invio di una proprietà del controllo.

lpclsid
Puntatore a una CLSID struttura tramite cui verrà restituito un ID classe.

pbPageOptional
Restituisce un indicatore che indica se l'utilizzo della pagina delle proprietà specificata è facoltativo.

Valore restituito

Diverso da zero se è stato restituito un ID classe in lpclsid; in caso contrario, 0.

Osservazioni:

Eseguire l'override di questa funzione per fornire un modo per richiamare le pagine delle proprietà del controllo dal browser delle proprietà del contenitore.

COleControl::OnMnemonic

Chiamato dal framework quando il contenitore ha rilevato che è stato premuto un tasto mnemonico del controllo OLE.

virtual void OnMnemonic(LPMSG pMsg);

Parametri

pMsg
Puntatore al messaggio di Windows generato dalla pressione di un tasto mnemonico.

COleControl::OnProperties

Chiamato dal framework quando il verbo delle proprietà del controllo è stato richiamato dal contenitore.

virtual BOOL OnProperties(
    LPMSG lpMsg,
    HWND hWndParent,
    LPCRECT lpRect);

Parametri

lpMsg
Puntatore al messaggio di Windows che ha richiamato il verbo.

hWndParent
Handle per la finestra padre del controllo.

lpRect
Puntatore al rettangolo utilizzato dal controllo nel contenitore.

Valore restituito

Diverso da zero se la chiamata ha esito positivo; in caso contrario, 0.

Osservazioni:

L'implementazione predefinita visualizza una finestra di dialogo delle proprietà modali.

È anche possibile usare questa funzione per causare la visualizzazione delle pagine delle proprietà del controllo. Effettuare una chiamata alla OnProperties funzione passando l'handle dell'elemento padre del controllo nel parametro hWndParent . In questo caso, i valori dei parametri lpMsg e lpRect vengono ignorati.

COleControl::OnQueryHitPoint

Chiamato dal framework in risposta alla richiesta di IViewObjectEx::QueryHitPoint un contenitore.

virtual BOOL OnQueryHitPoint(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    POINT ptlLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parametri

dwAspect
Specifica il modo in cui viene rappresentato l'oggetto. I valori validi vengono ricavati dall'enumerazione DVASPECT o DVASPECT2.

pRectBounds
Puntatore a una RECT struttura che specifica il rettangolo di delimitazione dell'area client del controllo OLE.

ptlLoc
Puntatore alla POINT struttura che specifica il punto da controllare per un hit. Il punto viene specificato nelle coordinate dell'area client OLE.

lCloseHint
Distanza che definisce "close" al punto controllato per un riscontro.

pHitResult
Puntatore al risultato della query di hit. Uno dei valori seguenti:

  • HITRESULT_OUTSIDE ptlLoc si trova all'esterno dell'oggetto OLE e non è chiuso.

  • HITRESULT_TRANSPARENT ptlLoc si trova all'interno dei limiti dell'oggetto OLE, ma non vicino all'immagine. Ad esempio, un punto al centro di un cerchio trasparente potrebbe essere HITRESULT_TRANSPARENT.

  • HITRESULT_CLOSE ptlLoc si trova all'interno o all'esterno dell'oggetto OLE, ma abbastanza vicino all'oggetto da considerare all'interno. Gli oggetti piccoli, sottili o dettagliati possono usare questo valore. Anche se un punto si trova all'esterno del rettangolo di delimitazione di un oggetto, potrebbe essere ancora vicino (questo è necessario per colpire oggetti di piccole dimensioni).

  • HITRESULT_HIT ptlLoc si trova all'interno dell'immagine dell'oggetto .

Valore restituito

Diverso da zero se viene restituito correttamente un risultato di hit; in caso contrario, 0. Un hit è una sovrapposizione con l'area di visualizzazione del controllo OLE.

Osservazioni:

Esegue una query se il rettangolo di visualizzazione di un oggetto si sovrappone al punto specificato (raggiunge il punto). QueryHitPoint può essere sottoposto a override per testare i riscontri per oggetti non rettangolari.

COleControl::OnQueryHitRect

Chiamato dal framework in risposta alla richiesta di IViewObjectEx::QueryHitRect un contenitore.

virtual BOOL OnQueryHitRect(
    DWORD dwAspect,
    LPCRECT pRectBounds,
    LPCRECT prcLoc,
    LONG lCloseHint,
    DWORD* pHitResult);

Parametri

dwAspect
Specifica la modalità con cui l'oggetto deve essere rappresentato. I valori validi vengono ricavati dall'enumerazione DVASPECT o DVASPECT2.

pRectBounds
Puntatore a una RECT struttura che specifica il rettangolo di delimitazione dell'area client del controllo OLE.

prcLoc
Puntatore alla RECT struttura che specifica il rettangolo da controllare per un hit (sovrapposizione con il rettangolo dell'oggetto), rispetto all'angolo superiore sinistro dell'oggetto.

lCloseHint
Non utilizzato.

pHitResult
Puntatore al risultato della query di hit. Uno dei valori seguenti:

  • HITRESULT_OUTSIDE nessun punto nel rettangolo viene raggiunto dall'oggetto OLE.

  • HITRESULT_HIT almeno un punto nel rettangolo sarebbe un colpo sull'oggetto.

Valore restituito

Diverso da zero se viene restituito correttamente un risultato di hit; in caso contrario, 0.

Osservazioni:

Esegue una query se il rettangolo di visualizzazione di un oggetto si sovrappone a qualsiasi punto del rettangolo specificato (raggiunge il rettangolo). QueryHitRect può essere sottoposto a override per testare i riscontri per oggetti non rettangolari.

COleControl::OnRenderData

Chiamato dal framework per recuperare i dati nel formato specificato.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Parametri

lpFormatEtc
Punta alla struttura FORMATETC specificando il formato in cui vengono richieste le informazioni.

lpStgMedium
Punta a una struttura STGMEDIUM in cui devono essere restituiti i dati.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Il formato specificato è uno inserito in precedenza nell'oggetto controllo utilizzando le funzioni membro DelayRenderData o DelayRenderFileData per il rendering ritardato. L'implementazione predefinita di questa funzione chiama OnRenderFileData rispettivamente o OnRenderGlobalData, se il supporto di archiviazione fornito è un file o una memoria. Se il formato richiesto è CF_METAFILEPICT o il formato del set di proprietà persistente, l'implementazione predefinita esegue il rendering dei dati appropriati e restituisce un valore diverso da zero. In caso contrario, restituisce 0 e non esegue alcuna operazione.

Se lpStgMedium-tymed> è TYMED_NULL, stGMEDIUM deve essere allocato e compilato come specificato da lpFormatEtc-tymed>. Se non TYMED_NULL, stGMEDIUM deve essere compilato con i dati.

Eseguire l'override di questa funzione per fornire i dati nel formato e nel supporto richiesti. A seconda dei dati, è possibile eseguire l'override di una delle altre versioni di questa funzione. Se i dati sono di dimensioni ridotte e fisse, eseguire l'override di OnRenderGlobalData. Se i dati si trovano in un file o sono di dimensioni variabili, eseguire l'override OnRenderFileDatadi .

Per altre informazioni, vedere le FORMATETC strutture e STGMEDIUM in Windows SDK.

COleControl::OnRenderFileData

Chiamato dal framework per recuperare i dati nel formato specificato quando il supporto di archiviazione è un file.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Parametri

lpFormatEtc
Punta alla struttura FORMATETC specificando il formato in cui vengono richieste le informazioni.

pFile
Punta a un oggetto CFile in cui eseguire il rendering dei dati.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Il formato specificato viene inserito in precedenza nell'oggetto controllo utilizzando la funzione membro DelayRenderData per il rendering ritardato. L'implementazione predefinita di questa funzione restituisce semplicemente FALSE.

Eseguire l'override di questa funzione per fornire i dati nel formato e nel supporto richiesti. A seconda dei dati, potrebbe essere necessario eseguire l'override di una delle altre versioni di questa funzione. Se si desidera gestire più supporti di archiviazione, eseguire l'override OnRenderDatadi . Se i dati si trovano in un file o sono di dimensioni variabili, eseguire l'override OnRenderFileDatadi .

Per altre informazioni, vedere la FORMATETC struttura in Windows SDK.

COleControl::OnRenderGlobalData

Chiamato dal framework per recuperare i dati nel formato specificato quando il supporto di archiviazione specificato è memoria globale.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Parametri

lpFormatEtc
Punta alla struttura FORMATETC specificando il formato in cui vengono richieste le informazioni.

phGlobal
Punta a un handle alla memoria globale in cui devono essere restituiti i dati. Se non è stata allocata alcuna memoria, questo parametro può essere NULL.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Il formato specificato viene inserito in precedenza nell'oggetto controllo utilizzando la funzione membro DelayRenderData per il rendering ritardato. L'implementazione predefinita di questa funzione restituisce semplicemente FALSE.

Se phGlobal è NULL, deve essere allocato un nuovo HGLOBAL e restituito in phGlobal. In caso contrario, l'oggetto HGLOBAL specificato da phGlobal deve essere compilato con i dati. La quantità di dati inseriti in HGLOBAL non deve superare le dimensioni correnti del blocco di memoria. Inoltre, il blocco non può essere riallocato a una dimensione maggiore.

Eseguire l'override di questa funzione per fornire i dati nel formato e nel supporto richiesti. A seconda dei dati, è possibile eseguire l'override di una delle altre versioni di questa funzione. Se si desidera gestire più supporti di archiviazione, eseguire l'override OnRenderDatadi . Se i dati si trovano in un file o sono di dimensioni variabili, eseguire l'override OnRenderFileDatadi .

Per altre informazioni, vedere la FORMATETC struttura in Windows SDK.

COleControl::OnResetState

Chiamato dal framework quando le proprietà del controllo devono essere impostate sui valori predefiniti.

virtual void OnResetState();

Osservazioni:

L'implementazione predefinita chiama DoPropExchange, passando un CPropExchange oggetto che determina l'impostazione delle proprietà sui valori predefiniti.

Il writer di controlli può inserire il codice di inizializzazione per il controllo OLE in questo override. Questa funzione viene chiamata quando viene chiamato IPersistStream::Load o IPersistStorage::Load o IPersistStreamInit::InitNew o IPersistStorage::InitNew , senza prima chiamare IPersistStream::Load o IPersistStorage::Load.

COleControl::OnSetClientSite

Chiamato dal framework quando il contenitore ha chiamato la funzione del IOleControl::SetClientSite controllo.

virtual void OnSetClientSite();

Osservazioni:

Per impostazione predefinita, OnSetClientSite controlla se le proprietà del percorso dati vengono caricate e, se sono, chiama DoDataPathPropExchange.

Eseguire l'override di questa funzione per eseguire qualsiasi elaborazione speciale di questa notifica. In particolare, gli override di questa funzione devono chiamare la classe base.

COleControl::OnSetData

Chiamato dal framework per sostituire i dati del controllo con i dati specificati.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Parametri

lpFormatEtc
Puntatore a una struttura FORMATETC che specifica il formato dei dati.

lpStgMedium
Puntatore a una struttura STGMEDIUM in cui risiedono i dati.

bRelease
TRUE se il controllo deve liberare il supporto di archiviazione; FALSE se il controllo non deve liberare il supporto di archiviazione.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Se i dati sono nel formato del set di proprietà persistente, l'implementazione predefinita modifica lo stato del controllo di conseguenza. In caso contrario, l'implementazione predefinita non esegue alcuna operazione. Se bRelease è TRUE, viene eseguita una chiamata a ReleaseStgMedium ; in caso contrario, no.

Eseguire l'override di questa funzione per sostituire i dati del controllo con i dati specificati.

Per altre informazioni, vedere le FORMATETC strutture e STGMEDIUM in Windows SDK.

COleControl::OnSetExtent

Chiamato dal framework quando è necessario modificare l'extent del controllo, in seguito a una chiamata a IOleObject::SetExtent.

virtual BOOL OnSetExtent(LPSIZEL lpSizeL);

Parametri

lpSizeL
Puntatore alla SIZEL struttura che utilizza interi lunghi per rappresentare la larghezza e l'altezza del controllo, espressa in unità HIMETRIC.

Valore restituito

Diverso da zero se la modifica delle dimensioni è stata accettata; in caso contrario, 0.

Osservazioni:

L'implementazione predefinita gestisce il ridimensionamento dell'extent del controllo. Se il controllo è attivo sul posto, viene eseguita una chiamata al contenitore OnPosRectChanged .

Eseguire l'override di questa funzione per modificare il ridimensionamento predefinito del controllo.

COleControl::OnSetObjectRects

Chiamato dal framework per implementare una chiamata a IOleInPlaceObject::SetObjectRects.

virtual BOOL OnSetObjectRects(
    LPCRECT lpRectPos,
    LPCRECT lpRectClip);

Parametri

lpRectPos
Puntatore a una RECT struttura che indica la nuova posizione e le dimensioni del controllo rispetto al contenitore.

lpRectClip
Puntatore a una RECT struttura che indica un'area rettangolare a cui deve essere ritagliato il controllo.

Valore restituito

Diverso da zero se il riposizionamento è stato accettato; in caso contrario, 0.

Osservazioni:

L'implementazione predefinita gestisce automaticamente il riposizionamento e il ridimensionamento della finestra di controllo e restituisce TRUE.

Eseguire l'override di questa funzione per modificare il comportamento predefinito di questa funzione.

COleControl::OnShowToolBars

Chiamato dal framework quando il controllo è stato attivato dall'interfaccia utente.

virtual void OnShowToolBars();

Osservazioni:

L'implementazione predefinita non esegue alcuna operazione.

COleControl::OnTextChanged

Chiamato dal framework quando il valore della proprietà Titolo azionario o Testo è stato modificato.

virtual void OnTextChanged();

Osservazioni:

L'implementazione predefinita chiama InvalidateControl.

Eseguire l'override di questa funzione se si desidera inviare una notifica dopo la modifica di questa proprietà.

COleControl::OnWindowlessMessage

Chiamato dal framework in risposta alla richiesta di IOleInPlaceObjectWindowless::OnWindowMessage un contenitore.

virtual BOOL OnWindowlessMessage(
    UINT msg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parametri

msg
Identificatore del messaggio passato da Windows.

wParam
Come passato da Windows. Specifica informazioni aggiuntive specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro msg .

lParam
Come passato da Windows. Specifica informazioni aggiuntive specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro msg .

plResult
Codice del risultato di Windows. Specifica il risultato dell'elaborazione del messaggio e dipende dal messaggio inviato.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Elabora i messaggi della finestra per i controlli senza finestra. COleControl's OnWindowlessMessage deve essere usato per i messaggi di finestra diversi da messaggi del mouse e messaggi da tastiera. COleControl fornisce SetCapture e SetFocus in modo specifico per ottenere l'acquisizione del mouse e lo stato attivo della tastiera per oggetti OLE senza finestra.

Poiché gli oggetti senza finestra non dispongono di una finestra, è necessario un meccanismo per consentire al contenitore di inviare messaggi. Un oggetto OLE senza finestra ottiene i messaggi dal contenitore tramite il OnWindowMessage metodo sull'interfaccia IOleInPlaceObjectWindowless (estensione di IOleInPlaceObject per il supporto senza finestra). OnWindowMessage non accetta un HWND parametro.

COleControl::P arentToClient

Converte le coordinate di pPoint in coordinate client.

virtual UINT ParentToClient(
    LPCRECT lprcBounds,
    LPPOINT pPoint,
    BOOL bHitTest = FALSE) const;

Parametri

lprcBounds
Puntatore ai limiti del controllo OLE all'interno del contenitore. Non l'area client, ma l'area dell'intero controllo, inclusi i bordi e le barre di scorrimento.

pPoint
Puntatore al punto padre (contenitore) da convertire nelle coordinate dell'area client del controllo.

bHitTest
Specifica se eseguire o meno il hit testing sul punto.

Valore restituito

Se bHitTest è FALSE, restituisce HTNOWHERE. Se bHitTest è TRUE, restituisce la posizione in cui il punto padre (contenitore) è atterrato nell'area client del controllo OLE ed è uno dei valori di hit test del mouse seguenti:

  • HTBORDER Nel bordo di una finestra che non ha un bordo di ridimensionamento.

  • HTBOTTOM Nel bordo orizzontale inferiore della finestra.

  • HTBOTTOMLEFT Nell'angolo inferiore sinistro del bordo della finestra.

  • HTBOTTOMRIGHT Nell'angolo inferiore destro del bordo della finestra.

  • HTCAPTION In un'area della barra del titolo.

  • HTCLIENT In un'area client.

  • HTERROR Sullo sfondo dello schermo o su una linea di divisione tra finestre (uguale a HTNOWHERE, ad eccezione del fatto che la DefWndProc funzione Windows produce un segnale acustico di sistema per indicare un errore).

  • HTGROWBOX In una scatola di dimensioni.

  • HTHSCROLL Nella barra di scorrimento orizzontale.

  • HTLEFT Nel bordo sinistro della finestra.

  • HTMAXBUTTON In un pulsante Ingrandisci.

  • HTMENU In un'area di menu.

  • HTMINBUTTON In un pulsante Riduci a icona.

  • HTNOWHERE Sullo sfondo dello schermo o su una linea di divisione tra finestre.

  • HTREDUCE in un pulsante Riduci a icona.

  • HTRIGHT Nel bordo destro della finestra.

  • HTSIZE In una scatola di dimensioni (uguale a HTGROWBOX).

  • HTSYSMENU In un menu Di controllo o in un pulsante Chiudi in una finestra figlio.

  • HTTOP Nel bordo orizzontale superiore della finestra.

  • HTTOPLEFT Nell'angolo superiore sinistro del bordo della finestra.

  • HTTOPRIGHT Nell'angolo superiore destro del bordo della finestra.

  • HTTRANSPARENT In una finestra attualmente coperta da un'altra finestra.

  • HTVSCROLL Nella barra di scorrimento verticale.

  • HTZOOM In un pulsante Ingrandisci.

Osservazioni:

In pPoint di input è relativo all'origine dell'elemento padre (angolo superiore sinistro del contenitore). In pPoint di output è relativo all'origine dell'area client del controllo OLE (angolo superiore sinistro dell'area client del controllo).

COleControl::P ostModalDialog

Notifica al contenitore che una finestra di dialogo modale è stata chiusa.

void PostModalDialog(HWND hWndParent = NULL);

Parametri

hWndParent
Handle nella finestra padre della finestra di dialogo modale.

Osservazioni:

Chiamare questa funzione dopo aver visualizzato qualsiasi finestra di dialogo modale. È necessario chiamare questa funzione in modo che il contenitore possa abilitare qualsiasi finestra di primo livello disabilitata da PreModalDialog. Questa funzione deve essere associata a una chiamata a PreModalDialog.

COleControl::P reModalDialog

Notifica al contenitore che una finestra di dialogo modale sta per essere visualizzata.

void PreModalDialog(HWND hWndParent = NULL);

Parametri

hWndParent
Handle nella finestra padre della finestra di dialogo modale.

Osservazioni:

Chiamare questa funzione prima di visualizzare qualsiasi finestra di dialogo modale. È necessario chiamare questa funzione in modo che il contenitore possa disabilitare tutte le finestre di primo livello. Dopo aver visualizzato la finestra di dialogo modale, è necessario chiamare PostModalDialog.

COleControl::RecreateControlWindow

Elimina e ricrea la finestra del controllo.

void RecreateControlWindow();

Osservazioni:

Questo potrebbe essere necessario se è necessario modificare i bit di stile della finestra.

COleControl::Refresh

Forza un aggiornamento del controllo OLE.

void Refresh();

Osservazioni:

Questa funzione è supportata dalla COleControl classe base come metodo stock, denominato Refresh. In questo modo gli utenti del controllo OLE possono aggiornare il controllo in un momento specifico. Per altre informazioni su questo metodo, vedere l'articolo Controlli ActiveX: Metodi.

COleControl::ReleaseCapture

Rilascia l'acquisizione del mouse.

BOOL ReleaseCapture();

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Se il controllo dispone attualmente dell'acquisizione del mouse, l'acquisizione viene rilasciata. In caso contrario, questa funzione non ha alcun effetto.

COleControl::ReleaseDC

Rilascia il contesto del dispositivo di visualizzazione di un contenitore di un controllo senza finestra, liberando il contesto di dispositivo da usare da altre applicazioni.

int ReleaseDC(CDC* pDC);

Parametri

pDC
Identifica il contesto del dispositivo contenitore da rilasciare.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

L'applicazione deve chiamare ReleaseDC per ogni chiamata a GetDC.

COleControl::ReparentControlWindow

Imposta l'elemento padre del controllo.

virtual void ReparentControlWindow(
    HWND hWndOuter,
    HWND hWndParent);

Parametri

hWndOuter
Handle della finestra di controllo.

hWndParent
Handle della nuova finestra padre.

Osservazioni:

Chiamare questa funzione per reimpostare l'elemento padre della finestra di controllo.

COleControl::ResetStockProps

Inizializza lo stato delle COleControl proprietà azionarie sui valori predefiniti.

void ResetStockProps();

Osservazioni:

Le proprietà sono: Appearance, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor, hWnd e Text. Per una descrizione delle proprietà delle scorte, vedere Controlli ActiveX: Aggiunta di proprietà azionarie.

È possibile migliorare le prestazioni di inizializzazione binaria di un controllo usando ResetStockProps e ResetVersion per eseguire l'override COleControl::OnResetStatedi . Vedi l'esempio seguente. Per altre informazioni sull'ottimizzazione dell'inizializzazione, vedere Controlli ActiveX: Ottimizzazione.

Esempio

void CMyAxCtrl::OnResetState()
{
   ResetVersion(MAKELONG(_wVerMinor, _wVerMajor));
   ResetStockProps();

   // initialize custom properties here
}

COleControl::ResetVersion

Inizializza il numero di versione sul valore specificato.

void ResetVersion(DWORD dwVersionDefault);

Parametri

dwVersionDefault
Numero di versione da assegnare al controllo.

Osservazioni:

È possibile migliorare le prestazioni di inizializzazione binaria di un controllo usando ResetVersion e ResetStockProps per eseguire l'override COleControl::OnResetStatedi . Vedere l'esempio in ResetStockProps. Per altre informazioni sull'ottimizzazione dell'inizializzazione, vedere Controlli ActiveX: Ottimizzazione.

COleControl::ScrollWindow

Consente a un oggetto OLE senza finestra di scorrere un'area all'interno dell'immagine attiva sul posto sullo schermo.

void ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL);

Parametri

xAmount
Specifica la quantità, in unità di dispositivo, dello scorrimento orizzontale. Questo parametro deve essere un valore negativo per scorrere verso sinistra.

yAmount
Specifica la quantità, in unità dispositivo, dello scorrimento verticale. Questo parametro deve essere un valore negativo per scorrere verso l'alto.

lpRect
Punta a un oggetto CRect o a una struttura RECT che specifica la parte dell'area client dell'oggetto OLE da scorrere, nelle coordinate client della finestra contenitore. Se lpRect è NULL, viene eseguito lo scorrimento dell'intera area client dell'oggetto OLE.

lpClipRect
Punta a un oggetto o RECT a una CRect struttura che specifica il rettangolo da ritagliare. Vengono scorrere solo i pixel all'interno del rettangolo. I bit esterni al rettangolo non sono interessati anche se si trovano nel rettangolo lpRect . Se lpClipRect è NULL, non viene eseguito alcun ritaglio sul rettangolo di scorrimento.

COleControl::SelectFontObject

Seleziona un tipo di carattere in un contesto di dispositivo.

CFont* SelectFontObject(
    CDC* pDC,
    CFontHolder& fontHolder);

Parametri

pDC
Puntatore a un oggetto contesto di dispositivo.

FontHolder
Riferimento all'oggetto CFontHolder che rappresenta il tipo di carattere da selezionare.

Valore restituito

Puntatore al tipo di carattere selezionato in precedenza. Al termine di tutte le operazioni di disegno che utilizzano fontHolder, il chiamante deve selezionare nuovamente il tipo di carattere selezionato in precedenza passandolo come parametro a CDC::SelectObject.

COleControl::SelectStockFont

Seleziona la proprietà Font stock in un contesto di dispositivo.

CFont* SelectStockFont(CDC* pDC);

Parametri

pDC
Contesto del dispositivo in cui verrà selezionato il tipo di carattere.

Valore restituito

Puntatore all'oggetto selezionato CFont in precedenza. Al termine, è consigliabile usare CDC::SelectObject per selezionare di nuovo questo tipo di carattere nel contesto del dispositivo.

COleControl::SerializeExtent

Serializza o inizializza lo stato dello spazio di visualizzazione allocato al controllo.

void SerializeExtent(CArchive& ar);

Parametri

Ar
Oggetto CArchive da serializzare da o verso.

Osservazioni:

È possibile migliorare le prestazioni di persistenza binaria di un controllo usando SerializeExtent, SerializeStockPropse SerializeVersion per eseguire l'override COleControl::Serializedi . Vedi l'esempio seguente. Per altre informazioni sull'ottimizzazione dell'inizializzazione, vedere Controlli ActiveX: Ottimizzazione.

Esempio

void CMyAxCtrl::Serialize(CArchive &ar)
{
   SerializeVersion(ar, MAKELONG(_wVerMinor, _wVerMajor));
   SerializeExtent(ar);
   SerializeStockProps(ar);

   if (ar.IsStoring())
   { // storing code
   }
   else
   { // loading code
   }
}

COleControl::SerializeStockProps

Serializza o inizializza lo stato delle COleControl proprietà predefinite: Aspetto, BackColor, BorderStyle, Caption, Enabled, Font, ForeColor e Text.

void SerializeStockProps(CArchive& ar);

Parametri

Ar
Oggetto CArchive da serializzare da o verso.

Osservazioni:

Per una descrizione delle proprietà delle scorte, vedere Controlli ActiveX: Aggiunta di proprietà azionarie.

È possibile migliorare le prestazioni di persistenza binaria di un controllo usando SerializeStockProps, SerializeExtente SerializeVersion per eseguire l'override COleControl::Serializedi . Per un esempio, vedere il codice in SerializeExtent. Per altre informazioni sull'ottimizzazione dell'inizializzazione, vedere Controlli ActiveX: Ottimizzazione.

COleControl::SerializeVersion

Serializza o inizializza lo stato delle informazioni sulla versione di un controllo.

DWORD SerializeVersion(
    CArchive& ar,
    DWORD dwVersionDefault,
    BOOL bConvert = TRUE);

Parametri

Ar
Oggetto CArchive da serializzare da o verso.

dwVersionDefault
Numero di versione corrente del controllo.

bConvert
Indica se i dati persistenti devono essere convertiti nel formato più recente quando vengono salvati o mantenuti nello stesso formato in cui erano stati caricati.

Valore restituito

Numero di versione del controllo. Se l'archivio specificato viene caricato, SerializeVersion restituisce la versione caricata dall'archivio. In caso contrario, restituisce la versione attualmente caricata.

Osservazioni:

È possibile migliorare le prestazioni di persistenza binaria di un controllo usando SerializeVersion, SerializeExtente SerializeStockProps per eseguire l'override COleControl::Serializedi . Per un esempio, vedere il codice in SerializeExtent. Per altre informazioni sull'ottimizzazione dell'inizializzazione, vedere Controlli ActiveX: Ottimizzazione.

COleControl::SetAppearance

Imposta il valore della proprietà Aspetto azionario del controllo.

void SetAppearance (short sAppearance);

Parametri

sAppearance
Valore short (VT_I2) da utilizzare per l'aspetto del controllo. Un valore pari a zero imposta l'aspetto del controllo su flat e il valore 1 imposta l'aspetto del controllo su 3D.

Osservazioni:

Per altre informazioni sulle proprietà azionarie, vedere Controlli ActiveX: Proprietà.

COleControl::SetBackColor

Imposta il valore della proprietà BackColor azionario del controllo.

void SetBackColor(OLE_COLOR dwBackColor);

Parametri

dwBackColor
Valore OLE_COLOR da utilizzare per il disegno di sfondo del controllo.

Osservazioni:

Per altre informazioni sull'uso di questa proprietà e altre proprietà correlate, vedere l'articolo Controlli ActiveX: Proprietà.

COleControl::SetBorderStyle

Imposta il valore della proprietà BorderStyle stock del controllo.

void SetBorderStyle(short sBorderStyle);

Parametri

sBorderStyle
Nuovo stile del bordo per il controllo; 0 indica che nessun bordo e 1 indica un bordo normale.

Osservazioni:

La finestra di controllo verrà quindi ricreata e OnBorderStyleChanged chiamata.

COleControl::SetCapture

Fa sì che la finestra del contenitore del controllo acquisisca il possesso dell'acquisizione del mouse per conto del controllo.

CWnd* SetCapture();

Valore restituito

Puntatore all'oggetto finestra che in precedenza ha ricevuto l'input CWnd del mouse.

Osservazioni:

Se il controllo è attivato e senza finestra, questa funzione fa sì che la finestra del contenitore del controllo acquisisca il possesso dell'acquisizione del mouse per conto del controllo. In caso contrario, questa funzione fa sì che il controllo stesso acquisisca il possesso dell'acquisizione del mouse (uguale a CWnd::SetCapture).

COleControl::SetControlSize

Imposta le dimensioni della finestra di controllo OLE e notifica al contenitore che il sito di controllo sta cambiando.

BOOL SetControlSize(int cx, int cy);

Parametri

cx
Specifica la nuova larghezza del controllo in pixel.

Cy
Specifica la nuova altezza del controllo in pixel.

Valore restituito

Diverso da zero se la chiamata ha avuto esito positivo; in caso contrario, 0.

Osservazioni:

Questa funzione non deve essere usata nel costruttore del controllo.

Si noti che tutte le coordinate per le finestre di controllo sono relative all'angolo superiore sinistro del controllo.

COleControl::SetEnabled

Imposta il valore della proprietà Enabled azionario del controllo.

void SetEnabled(BOOL bEnabled);

Parametri

bEnabled
TRUE se il controllo deve essere abilitato; in caso contrario FALSE.

Osservazioni:

Dopo aver impostato questa proprietà, OnEnabledChange viene chiamato .

COleControl::SetFocus

Fa sì che la finestra del contenitore del controllo assuma il possesso dello stato attivo dell'input per conto del controllo.

CWnd* SetFocus();

Valore restituito

Puntatore all'oggetto CWnd finestra che in precedenza aveva lo stato attivo per l'input o NULL se tale finestra non è presente.

Osservazioni:

Se il controllo è attivato e senza finestra, questa funzione fa sì che la finestra del contenitore del controllo assuma il possesso dello stato attivo dell'input, per conto del controllo. Lo stato attivo di input indirizza l'input della tastiera alla finestra del contenitore e il contenitore invia tutti i messaggi di tastiera successivi all'oggetto OLE che chiama SetFocus. Qualsiasi finestra che in precedenza aveva lo stato attivo per l'input lo perde.

Se il controllo non è senza finestra, questa funzione fa sì che il controllo stesso assuma il possesso dello stato attivo di input (uguale CWnd::SetFocusa ).

COleControl::SetFont

Imposta la proprietà Stock Font del controllo.

void SetFont(LPFONTDISP pFontDisp);

Parametri

pFontDisp
Puntatore a un'interfaccia dispatch font.

COleControl::SetForeColor

Imposta il valore della proprietà ForeColor azionario del controllo.

void SetForeColor(OLE_COLOR dwForeColor);

Parametri

dwForeColor
Valore OLE_COLOR da utilizzare per il disegno in primo piano del controllo.

Osservazioni:

Per altre informazioni sull'uso di questa proprietà e altre proprietà correlate, vedere l'articolo Controlli ActiveX: Proprietà.

COleControl::SetInitialDataFormats

Chiamato dal framework per inizializzare l'elenco dei formati di dati supportati dal controllo .

virtual void SetInitialDataFormats();

Osservazioni:

L'implementazione predefinita specifica due formati: CF_METAFILEPICT e il set di proprietà persistenti.

COleControl::SetInitialSize

Imposta le dimensioni di un controllo OLE quando viene visualizzato per la prima volta in un contenitore.

void SetInitialSize(
    int cx,
    int cy);

Parametri

cx
Larghezza iniziale del controllo OLE in pixel.

Cy
Altezza iniziale del controllo OLE in pixel.

Osservazioni:

Chiamare questa funzione nel costruttore per impostare le dimensioni iniziali del controllo. Le dimensioni iniziali sono misurate in unità di dispositivo o pixel. È consigliabile effettuare questa chiamata nel costruttore del controllo.

COleControl::SetModifiedFlag

Modifica lo stato modificato di un controllo.

void SetModifiedFlag(BOOL bModified = TRUE);

Parametri

bModified
Nuovo valore per il flag modificato del controllo. TRUE indica che lo stato del controllo è stato modificato; FALSE indica che lo stato del controllo è stato appena salvato.

Osservazioni:

Chiamare questa funzione ogni volta che si verifica una modifica che influisce sullo stato permanente del controllo. Ad esempio, se il valore di una proprietà persistente cambia, chiamare questa funzione con bModified TRUE.

COleControl::SetNotPermitted

Indica che una richiesta di modifica non è riuscita.

void SetNotPermitted();

Osservazioni:

Chiamare questa funzione in caso BoundPropertyRequestEdit di errore. Questa funzione genera un'eccezione di tipo COleDispScodeException per indicare che l'operazione set non è consentita.

COleControl::SetNotSupported

Impedisce la modifica del valore della proprietà di un controllo da parte dell'utente.

void SetNotSupported();

Osservazioni:

Chiamare questa funzione al posto della funzione Set di qualsiasi proprietà in cui la modifica del valore della proprietà da parte dell'utente del controllo non è supportata. Un esempio è una proprietà di sola lettura.

COleControl::SetRectInContainer

Imposta le coordinate del rettangolo del controllo rispetto al contenitore, espresso in unità dispositivo.

BOOL SetRectInContainer(LPCRECT lpRect);

Parametri

lpRect
Puntatore a un rettangolo contenente le nuove coordinate del controllo rispetto al contenitore.

Valore restituito

Diverso da zero se la chiamata ha avuto esito positivo; in caso contrario, 0.

Osservazioni:

Se il controllo è aperto, viene ridimensionato; in caso contrario viene chiamata la funzione del OnPosRectChanged contenitore.

COleControl::SetText

Imposta il valore della proprietà Titolo azionario o Testo del controllo.

void SetText(LPCTSTR pszText);

Parametri

pszText
Puntatore a una stringa di caratteri.

Osservazioni:

Si noti che le proprietà Titolo e Testo sono entrambe mappate allo stesso valore. Ciò significa che tutte le modifiche apportate a entrambe le proprietà cambieranno automaticamente entrambe le proprietà. In generale, un controllo deve supportare la proprietà Titolo azionario o Testo, ma non entrambi.

COleControl::ThrowError

Segnala l'occorrenza di un errore nel controllo.

void ThrowError(
    SCODE sc,
    UINT nDescriptionID,
    UINT nHelpID = -1);

void ThrowError(
    SCODE sc,
    LPCTSTR pszDescription = NULL,
    UINT nHelpID = 0);

Parametri

Sc
Valore del codice di stato da segnalare. Per un elenco completo dei codici possibili, vedere l'articolo Controlli ActiveX: Argomenti avanzati.

nDescriptionID
ID risorsa stringa dell'eccezione da segnalare.

nHelpID
ID della Guida dell'argomento da segnalare.

pszDescription
Stringa contenente una spiegazione dell'eccezione da segnalare.

Osservazioni:

Questa funzione deve essere chiamata solo dall'interno di una funzione Get o Set per una proprietà OLE o dall'implementazione di un metodo di automazione OLE. Se è necessario segnalare errori che si verificano in altri momenti, è necessario attivare l'evento stock Error.

COleControl::TransformCoords

Trasforma i valori delle coordinate tra le unità HIMETRIC e le unità native del contenitore.

void TransformCoords(
    POINTL* lpptlHimetric,
    POINTF* lpptfContainer,
    DWORD flags);

Parametri

lpptlHimetric
Puntatore a una POINTL struttura contenente le coordinate in unità HIMETRIC.

lpptfContainer
Puntatore a una POINTF struttura contenente le coordinate nelle dimensioni dell'unità del contenitore.

flags
Combinazione dei valori seguenti:

  • XFORMCOORDS_POSITION Una posizione nel contenitore.

  • XFORMCOORDS_SIZE Dimensione A nel contenitore.

  • XFORMCOORDS_HIMETRICTOCONTAINER trasformare le unità HIMETRIC nelle unità del contenitore.

  • XFORMCOORDS_CONTAINERTOHIMETRIC Trasformare le unità del contenitore in unità HIMETRIC.

Osservazioni:

I primi due flag, XFORMCOORDS_POSITION e XFORMCOORDS_SIZE, indicano se le coordinate devono essere considerate come una posizione o una dimensione. I due flag rimanenti indicano la direzione della trasformazione.

COleControl::TranslateColor

Converte un valore di colore dal tipo di dati OLE_COLOR al tipo di dati COLORREF .

COLORREF TranslateColor(
    OLE_COLOR clrColor,
    HPALETTE hpal = NULL);

Parametri

clrColor
Tipo di dati OLE_COLOR. Per altre informazioni, vedere la funzione Windows OleTranslateColor .

hpal
Handle per una tavolozza facoltativa; può essere NULL.

Valore restituito

Valore di colore RGB (rosso, verde, blu) a 32 bit che definisce il colore a tinta unita più vicino al valore clrColor che il dispositivo può rappresentare.

Osservazioni:

Questa funzione è utile per convertire le proprietà Stock ForeColor e BackColor in tipi COLORREF usati dalle funzioni membro CDC .

COleControl::WillAmbientsBeValidDuringLoad

Determina se il controllo deve utilizzare i valori delle proprietà di ambiente come valori predefiniti, quando viene successivamente caricato dallo stato permanente.

BOOL WillAmbientsBeValidDuringLoad();

Valore restituito

Diverso da zero indica che le proprietà di ambiente saranno valide; in caso contrario, le proprietà di ambiente non saranno valide.

Osservazioni:

In alcuni contenitori il controllo potrebbe non avere accesso alle relative proprietà di ambiente durante la chiamata iniziale all'override di COleControl::DoPropExchange. Questo è il caso se il contenitore chiama IPersistStreamInit::Load o IPersistStorage::Load prima di chiamare IOleObject::SetClientSite,ovvero se non rispetta il bit di stato OLEMISC_SETCLIENTSITEFIRST.

COleControl::WindowProc

Fornisce una routine di Windows per un COleControl oggetto .

virtual LRESULT WindowProc(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parametri

message
Specifica il messaggio di Windows da elaborare.

wParam
Fornisce informazioni aggiuntive utilizzate per l'elaborazione del messaggio. Il valore del parametro dipende dal messaggio.

lParam
Fornisce informazioni aggiuntive utilizzate per l'elaborazione del messaggio. Il valore del parametro dipende dal messaggio.

Valore restituito

Valore restituito del messaggio inviato.

Osservazioni:

Chiamare questa funzione per inviare messaggi specifici tramite la mappa dei messaggi del controllo.

Vedi anche

Esempio MFC CIRC3
Testhelp di esempio MFC
Classe COlePropertyPage
Classe CWnd
Grafico della gerarchia
Classe CFontHolder
Classe CPictureHolder