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à
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 CFile
oggetto 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