Condividi tramite


Classe COleControlContainer

Funge da contenitore di controlli per i controlli ActiveX.

Sintassi

class COleControlContainer : public CCmdTarget

Membri

Costruttori pubblici

Nome Descrizione
COleControlContainer::COleControlContainer Costruisce un oggetto COleControlContainer.

Metodi pubblici

Nome Descrizione
COleControlContainer::AttachControlSite Crea un sito di controllo ospitato dal contenitore.
COleControlContainer::BroadcastAmbientPropertyChange Informa tutti i controlli ospitati che una proprietà di ambiente è stata modificata.
COleControlContainer::CheckDlgButton Modifica il controllo pulsante specificato.
COleControlContainer::CheckRadioButton Seleziona il pulsante di opzione specificato di un gruppo.
COleControlContainer::CreateControl Crea un controllo ActiveX ospitato.
COleControlContainer::CreateOleFont Crea un tipo di carattere OLE.
COleControlContainer::FindItem Restituisce il sito personalizzato del controllo specificato.
COleControlContainer::FreezeAllEvents Determina se il sito di controllo accetta eventi.
COleControlContainer::GetAmbientProp Recupera la proprietà di ambiente specificata.
COleControlContainer::GetDlgItem Recupera il controllo finestra di dialogo specificato.
COleControlContainer::GetDlgItemInt Recupera il valore del controllo finestra di dialogo specificato.
COleControlContainer::GetDlgItemText Recupera la didascalia del controllo finestra di dialogo specificato.
COleControlContainer::HandleSetFocus Determina se il contenitore gestisce WM_SETFOCUS messaggi.
COleControlContainer::HandleWindowlessMessage Gestisce i messaggi inviati a un controllo senza finestra.
COleControlContainer::IsDlgButtonChecked Determina lo stato del pulsante specificato.
COleControlContainer::OnPaint Chiamato per ripristinare una parte del contenitore.
COleControlContainer::OnUIActivate Chiamato quando un controllo sta per essere attivato sul posto.
COleControlContainer::OnUIDeactivate Chiamato quando un controllo sta per essere disattivato.
COleControlContainer::ScrollChildren Chiamato dal framework quando i messaggi di scorrimento vengono ricevuti da una finestra figlio.
COleControlContainer::SendDlgItemMessage Invia un messaggio al controllo specificato.
COleControlContainer::SetDlgItemInt Imposta il valore del controllo specificato.
COleControlContainer::SetDlgItemText Imposta il testo del controllo specificato.

Membri dati pubblici

Nome Descrizione
COleControlContainer::m_crBack Colore di sfondo del contenitore.
COleControlContainer::m_crFore Colore di primo piano del contenitore.
COleControlContainer::m_listSitesOrWnds Elenco dei siti di controllo supportati.
COleControlContainer::m_nWindowlessControls Numero di controlli senza finestra ospitati.
COleControlContainer::m_pOleFont Puntatore al tipo di carattere OLE del sito di controllo personalizzato.
COleControlContainer::m_pSiteCapture Puntatore al sito di controllo di acquisizione.
COleControlContainer::m_pSiteFocus Puntatore al controllo con stato attivo per l'input.
COleControlContainer::m_pSiteUIActive Puntatore al controllo attualmente attivato sul posto.
COleControlContainer::m_pWnd Puntatore alla finestra che implementa il contenitore di controlli.
COleControlContainer::m_siteMap Mappa del sito.

Osservazioni:

Questa operazione viene eseguita fornendo supporto per uno o più siti di controllo ActiveX (implementati da COleControlSite). COleControlContainer implementa completamente le interfacce IOleInPlaceFrame e IOleContainer , consentendo ai controlli ActiveX contenuti di soddisfare le proprie qualifiche come elementi sul posto.

In genere, questa classe viene usata insieme COccManager a e COleControlSite per implementare un contenitore di controlli ActiveX personalizzato, con siti personalizzati per uno o più controlli ActiveX.

Gerarchia di ereditarietà

CObject

CCmdTarget

COleControlContainer

Requisiti

Intestazione: afxocc.h

COleControlContainer::AttachControlSite

Chiamato dal framework per creare e collegare un sito di controllo.

virtual void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

Parametri

pWnd
Puntatore a un oggetto CWnd.

nIDC
ID del controllo da associare.

Osservazioni:

Eseguire l'override di questa funzione se si vuole personalizzare questo processo.

Nota

Usare la prima forma di questa funzione se si esegue il collegamento statico alla libreria MFC. Usare il secondo modulo se si esegue il collegamento dinamico alla libreria MFC.

COleControlContainer::BroadcastAmbientPropertyChange

Informa tutti i controlli ospitati che una proprietà di ambiente è stata modificata.

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

Parametri

dispid
ID dispatch della proprietà di ambiente da modificare.

Osservazioni:

Questa funzione viene chiamata dal framework quando una proprietà di ambiente è stata modificata. Eseguire l'override di questa funzione per personalizzare questo comportamento.

COleControlContainer::CheckDlgButton

Modifica lo stato corrente del pulsante.

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Parametri

nIDButton
ID del pulsante da modificare.

nCheck
Specifica lo stato del pulsante. Può essere uno dei seguenti:

  • BST_CHECKED Imposta lo stato del pulsante su selezionato.

  • BST_INDETERMINATE Imposta lo stato del pulsante su grigio, che indica uno stato indeterminato. Utilizzare questo valore solo se il pulsante ha lo stile BS_3STATE o BS_AUTO3STATE.

  • BST_UNCHECKED Imposta lo stato del pulsante su deselezionato.

COleControlContainer::CheckRadioButton

Seleziona un pulsante di opzione specificato in un gruppo e cancella i pulsanti rimanenti nel gruppo.

virtual void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Parametri

nIDFirstButton
Specifica l'identificatore del primo pulsante di opzione nel gruppo.

nIDLastButton
Specifica l'identificatore dell'ultimo pulsante di opzione nel gruppo.

nIDCheckButton
Specifica l'identificatore del pulsante di opzione da controllare.

COleControlContainer::COleControlContainer

Costruisce un oggetto COleControlContainer.

explicit COleControlContainer(CWnd* pWnd);

Parametri

pWnd
Puntatore alla finestra padre del contenitore di controlli.

Osservazioni:

Dopo aver creato l'oggetto, aggiungere un sito di controllo personalizzato con una chiamata a AttachControlSite.

COleControlContainer::CreateControl

Crea un controllo ActiveX ospitato dall'oggetto specificato COleControlSite .

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

Parametri

pWndCtrl
Puntatore all'oggetto finestra che rappresenta il controllo .

clsid
ID univoco della classe del controllo.

lpszWindowName
Puntatore al testo da visualizzare nel controllo . Imposta il valore della proprietà Caption o Text del controllo (se presente). Se NULL, la proprietà Caption o Text del controllo non viene modificata.

dwStyle
Stili di Windows. Gli stili disponibili sono elencati nella sezione Osservazioni .

rect
Specifica le dimensioni e la posizione del controllo. Può essere un CRect oggetto o una RECT struttura.

nID
Specifica l'ID finestra figlio del controllo.

pPersist
Puntatore a un oggetto CFile contenente lo stato permanente per il controllo . Il valore predefinito è NULL, che indica che il controllo si inizializza senza ripristinarne lo stato da alcuna risorsa di archiviazione permanente. In caso contrario, deve essere un puntatore a un CFileoggetto derivato da che contiene i dati persistenti del controllo, sotto forma di flusso o di archiviazione. Questi dati potrebbero essere stati salvati in un'attivazione precedente del client. CFile Può contenere altri dati, ma deve avere il puntatore di lettura/scrittura impostato sul primo byte di dati persistenti al momento della chiamata a CreateControl.

bStorage
Indica se i dati in pPersist devono essere interpretati come IStorage o IStream dati. Se i dati in pPersist sono una risorsa di archiviazione, bStorage deve essere TRUE. Se i dati in pPersist sono un flusso, bStorage deve essere FALSE. Il valore predefinito è FALSE.

bstrLicKey
Dati facoltativi della chiave di licenza. Questi dati sono necessari solo per la creazione di controlli che richiedono un codice di licenza di runtime. Se il controllo supporta le licenze, è necessario fornire un codice di licenza per la creazione del controllo per avere esito positivo. Il valore predefinito è NULL.

ppNewSite
Puntatore al sito di controllo esistente che ospiterà il controllo creato. Il valore predefinito è NULL, che indica che un nuovo sito di controllo verrà creato e collegato automaticamente al nuovo controllo.

Ppt
Puntatore a una POINT struttura che contiene l'angolo superiore sinistro del controllo. La dimensione del controllo è determinata dal valore di psize. I valori ppt e psize sono un metodo facoltativo per specificare le dimensioni e la posizione del controllo.

psize
Puntatore a una SIZE struttura che contiene le dimensioni del controllo. L'angolo superiore sinistro è determinato dal valore di ppt. I valori ppt e psize sono un metodo facoltativo per specificare le dimensioni e la posizione del controllo.

Valore restituito

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

Osservazioni:

Solo un subset dei flag dwStyle di Windows è supportato da CreateControl:

  • WS_VISIBLE Crea una finestra inizialmente visibile. Obbligatorio se si desidera che il controllo sia visibile immediatamente, ad esempio le finestre normali.

  • WS_DISABLED Crea una finestra inizialmente disabilitata. Una finestra disabilitata non può ricevere input dall'utente. Può essere impostato se il controllo dispone di una proprietà Enabled.

  • WS_BORDER Crea una finestra con un bordo linea sottile. Può essere impostata se il controllo ha una proprietà BorderStyle.

  • WS_GROUP Specifica il primo controllo di un gruppo di controlli. L'utente può modificare lo stato attivo della tastiera da un controllo del gruppo al successivo usando i tasti di direzione. Tutti i controlli definiti con lo stile WS_GROUP dopo il primo controllo appartengono allo stesso gruppo. Il controllo successivo con lo stile WS_GROUP termina il gruppo e avvia il gruppo successivo.

  • WS_TABSTOP Specifica un controllo che può ricevere lo stato attivo della tastiera quando l'utente preme il tasto TAB. Premendo TAB lo stato attivo della tastiera viene impostato sul controllo successivo dello stile WS_TABSTOP.

Usare il secondo overload per creare controlli di dimensioni predefinite.

COleControlContainer::CreateOleFont

Crea un tipo di carattere OLE.

void CreateOleFont(CFont* pFont);

Parametri

pFont
Puntatore al tipo di carattere da utilizzare dal contenitore di controlli.

COleControlContainer::FindItem

Trova il sito personalizzato che ospita l'elemento specificato.

virtual COleControlSite* FindItem(UINT nID) const;

Parametri

nID
Identificatore dell'elemento da trovare.

Valore restituito

Puntatore al sito personalizzato dell'elemento specificato.

COleControlContainer::FreezeAllEvents

Determina se il contenitore ignorerà gli eventi dai siti di controllo collegati o li accetterà.

void FreezeAllEvents(BOOL bFreeze);

Parametri

bFreeze
Diverso da zero se gli eventi verranno elaborati; in caso contrario, 0.

Osservazioni:

Nota

Il controllo non è necessario per interrompere l'attivazione di eventi se richiesto dal contenitore di controlli. Può continuare la generazione, ma tutti gli eventi successivi verranno ignorati dal contenitore di controlli.

COleControlContainer::GetAmbientProp

Recupera il valore di una proprietà di ambiente specificata.

virtual BOOL GetAmbientProp(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvarResult);

Parametri

pSite
Puntatore a un sito di controllo da cui verrà recuperata la proprietà di ambiente.

dispid
ID dispatch della proprietà di ambiente desiderata.

pVarResult
Puntatore al valore della proprietà di ambiente.

Valore restituito

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

COleControlContainer::GetDlgItem

Recupera un puntatore al controllo o alla finestra figlio specificata in una finestra di dialogo o in un'altra finestra.

virtual CWnd* GetDlgItem(int nID) const;

virtual void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Parametri

nID
Identificatore dell'elemento della finestra di dialogo da recuperare.

phWnd
Puntatore all'handle dell'oggetto finestra dell'elemento di dialogo specificato.

Valore restituito

Puntatore alla finestra dell'elemento della finestra di dialogo.

COleControlContainer::GetDlgItemInt

Recupera il valore del testo tradotto del controllo specificato.

virtual UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans,
    BOOL bSigned) const;

Parametri

nID
Identificatore del controllo.

lpTrans
Puntatore a una variabile booleana che riceve un valore di esito positivo/negativo della funzione (TRUE indica l'esito positivo, FALSE indica un errore).

bSigned
Specifica se la funzione deve esaminare il testo per un segno meno all'inizio e restituire un valore intero con segno se ne trova uno. Se il parametro bSigned è TRUE, specificando che il valore da recuperare è un valore intero con segno, eseguire il cast del valore restituito in un int tipo. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Valore restituito

Se ha esito positivo, la variabile a cui punta lpTrans è impostata su TRUE e il valore restituito è il valore tradotto del testo del controllo.

Se la funzione ha esito negativo, la variabile a cui punta lpTrans è impostata su FALSE e il valore restituito è zero. Si noti che, poiché zero è un possibile valore convertito, un valore restituito pari a zero non indica per sé un errore.

Se lpTrans è NULL, la funzione non restituisce informazioni sull'esito positivo o negativo.

Osservazioni:

La funzione converte il testo recuperato rimuovendo eventuali spazi aggiuntivi all'inizio del testo e quindi convertendo le cifre decimali. La funzione smette di tradurre quando raggiunge la fine del testo o rileva un carattere non numerico.

Questa funzione restituisce zero se il valore tradotto è maggiore di INT_MAX (per i numeri con segno) o UINT_MAX (per i numeri senza segno).

COleControlContainer::GetDlgItemText

Recupera il testo del controllo specificato.

virtual int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

Parametri

nID
Identificatore del controllo.

lpStr
Puntatore al testo del controllo.

nMaxCount
Specifica la lunghezza massima, espressa in caratteri, della stringa da copiare nel buffer a cui punta lpStr. Se la lunghezza della stringa supera il limite, la stringa viene troncata.

Valore restituito

Se la funzione ha esito positivo, il valore restituito specifica il numero di caratteri copiati nel buffer, senza includere il carattere null di terminazione.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

COleControlContainer::HandleSetFocus

Determina se il contenitore gestisce WM_SETFOCUS messaggi.

virtual BOOL HandleSetFocus();

Valore restituito

Diverso da zero se il contenitore gestisce WM_SETFOCUS messaggi; in caso contrario, zero.

COleControlContainer::HandleWindowlessMessage

Elabora i messaggi della finestra per i controlli senza finestra.

virtual BOOL HandleWindowlessMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parametri

message
Identificatore del messaggio della finestra, fornito da Windows.

wParam
Parametro del messaggio; fornito da Windows. Specifica informazioni aggiuntive specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro message.

lParam
Parametro del messaggio; fornito da Windows. Specifica informazioni aggiuntive specifiche del messaggio. Il contenuto di questo parametro dipende dal valore del parametro message.

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:

Eseguire l'override di questa funzione per personalizzare la gestione dei messaggi di controllo senza finestra.

COleControlContainer::IsDlgButtonChecked

Determina lo stato del pulsante specificato.

virtual UINT IsDlgButtonChecked(int nIDButton) const;

Parametri

nIDButton
Identificatore del controllo pulsante.

Valore restituito

Valore restituito, da un pulsante creato con lo stile BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON o BS_3STATE. Può essere uno dei seguenti:

  • BST_CHECKED pulsante è selezionato.

  • BST_INDETERMINATE Button è in grigio, che indica uno stato indeterminato (si applica solo se il pulsante ha lo stile BS_3STATE o BS_AUTO3STATE).

  • BST_UNCHECKED Pulsante è deselezionato.

Osservazioni:

Se il pulsante è un controllo a tre stati, la funzione membro determina se è disattivata, selezionata o nessuna delle due.

COleControlContainer::m_crBack

Colore di sfondo del contenitore.

COLORREF m_crBack;

COleControlContainer::m_crFore

Colore di primo piano del contenitore.

COLORREF m_crFore;

COleControlContainer::m_listSitesOrWnds

Elenco dei siti di controllo ospitati dal contenitore.

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer::m_nWindowlessControls

Numero di controlli senza finestra ospitati dal contenitore di controlli.

int m_nWindowlessControls;

COleControlContainer::m_pOleFont

Puntatore al tipo di carattere OLE del sito di controllo personalizzato.

LPFONTDISP m_pOleFont;

COleControlContainer::m_pSiteCapture

Puntatore al sito di controllo di acquisizione.

COleControlSite* m_pSiteCapture;

COleControlContainer::m_pSiteFocus

Puntatore al sito di controllo che ha attualmente lo stato attivo per l'input.

COleControlSite* m_pSiteFocus;

COleControlContainer::m_pSiteUIActive

Puntatore al sito di controllo attivato sul posto.

COleControlSite* m_pSiteUIActive;

COleControlContainer::m_pWnd

Puntatore all'oggetto finestra associato al contenitore.

CWnd* m_pWnd;

COleControlContainer::m_siteMap

Mappa del sito.

CMapPtrToPtr m_siteMap;

COleControlContainer::OnPaint

Chiamato dal framework per gestire le richieste di WM_PAINT.

virtual BOOL OnPaint(CDC* pDC);

Parametri

pDC
Puntatore al contesto di dispositivo usato dal contenitore.

Valore restituito

Diverso da zero se il messaggio è stato gestito; in caso contrario, zero.

Osservazioni:

Eseguire l'override di questa funzione per personalizzare il processo di disegno.

COleControlContainer::OnUIActivate

Chiamato dal framework quando il sito di controllo, a cui fa riferimento pSite, sta per essere attivato sul posto.

virtual void OnUIActivate(COleControlSite* pSite);

Parametri

pSite
Puntatore al sito di controllo che sta per essere attivato sul posto.

Osservazioni:

L'attivazione sul posto significa che il menu principale del contenitore viene sostituito con un menu composito sul posto.

COleControlContainer::OnUIDeactivate

Chiamato dal framework quando il sito di controllo, a cui fa riferimento pSite, sta per essere disattivato.

virtual void OnUIDeactivate(COleControlSite* pSite);

Parametri

pSite
Puntatore al sito di controllo che sta per essere disattivato.

Osservazioni:

Quando viene ricevuta questa notifica, il contenitore deve reinstallare l'interfaccia utente e concentrarsi.

COleControlContainer::ScrollChildren

Chiamato dal framework quando i messaggi di scorrimento vengono ricevuti da una finestra figlio.

virtual void ScrollChildren(
    int dx,
    int dy);

Parametri

Dx
Quantità, in pixel, di scorrimento lungo l'asse x.

dy
Quantità, in pixel, di scorrimento lungo l'asse y.

COleControlContainer::SendDlgItemMessage

Invia un messaggio al controllo specificato.

virtual LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parametri

nID
Specifica l'identificatore del controllo che riceve il messaggio.

message
Specifica il messaggio da inviare.

wParam
Specifica informazioni aggiuntive specifiche del messaggio.

lParam
Specifica informazioni aggiuntive specifiche del messaggio.

COleControlContainer::SetDlgItemInt

Imposta il testo di un controllo in una finestra di dialogo sulla rappresentazione di stringa di un valore intero specificato.

virtual void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned);

Parametri

nID
Identificatore del controllo.

nValue
Valore intero da visualizzare.

bSigned
Specifica se il parametro nValue è firmato o senza segno. Se questo parametro è TRUE, nValue è firmato. Se questo parametro è TRUE e nValue è minore di zero, viene inserito un segno meno prima della prima cifra nella stringa. Se questo parametro è FALSE, nValue non è firmato.

COleControlContainer::SetDlgItemText

Imposta il testo del controllo specificato, utilizzando il testo contenuto in lpszString.

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Parametri

nID
Identificatore del controllo.

lpszString
Puntatore al testo del controllo.

Vedi anche

Classe CCmdTarget
Grafico della gerarchia
Classe COleControlSite
Classe COccManager