Classe COccManager
Gestisce vari siti di controllo personalizzato, implementati dagli oggetti COleControlContainer
e COleControlSite
.
Sintassi
class COccManager : public CNoTrackObject
Membri
Metodi pubblici
Nome | Descrizione |
---|---|
COccManager::CreateContainer | Crea un oggetto COleContainer . |
COccManager::CreateDlgControls | Crea controlli ActiveX ospitati dall'oggetto associato COleContainer . |
COccManager::CreateSite | Crea un oggetto COleClientSite . |
COccManager::GetDefBtnCode | Recupera il codice del pulsante predefinito. |
COccManager::IsDialogMessage | Determina la destinazione di un messaggio di dialogo. |
COccManager::IsLabelControl | Determina se il controllo specificato è un controllo etichetta. |
COccManager::IsMatchingMnemonic | Determina se l'oggetto mnemonico corrente corrisponde al mnemonico del controllo specificato. |
COccManager::OnEvent | Tenta di gestire l'evento specificato. |
COccManager::P ostCreateDialog | Libera le risorse allocate durante la creazione del dialogo. |
COccManager::P reCreateDialog | Elabora un modello di finestra di dialogo per i controlli ActiveX. |
COccManager::SetDefaultButton | Attiva o disattiva lo stato predefinito del controllo specificato. |
COccManager::SplitDialogTemplate | Separa tutti i controlli ActiveX esistenti dai controlli comuni nel modello di finestra di dialogo specificato. |
Osservazioni:
La classe base, CNoTrackObject
, è una classe di base non documentata ,che si trova in AFXTLS. H). Progettato per l'uso dal framework MFC, le classi derivate dalla CNoTrackObject
classe sono esenti dal rilevamento delle perdite di memoria. Non è consigliabile derivare direttamente da CNoTrackObject
.
Gerarchia di ereditarietà
CNoTrackObject
COccManager
Requisiti
Intestazione: afxocc.h
COccManager::CreateContainer
Chiamato dal framework per creare un contenitore di controlli.
virtual COleControlContainer* CreateContainer(CWnd* pWnd);
Parametri
pWnd
Puntatore all'oggetto finestra associato al contenitore del sito personalizzato.
Valore restituito
Puntatore al contenitore appena creato; in caso contrario NULL.
Osservazioni:
Per altre informazioni sulla creazione di siti personalizzati, vedere COleControlContainer::AttachControlSite.
COccManager::CreateDlgControls
Chiamare questa funzione per creare controlli ActiveX specificati dal parametro pOccDialogInfo .
virtual BOOL CreateDlgControls(
CWnd* pWndParent,
LPCTSTR lpszResourceName,
_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
virtual BOOL CreateDlgControls(
CWnd* pWndParent,
void* lpResource,
_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
Parametri
pWndParent
Puntatore all'elemento padre dell'oggetto dialogo.
lpszResourceName
Nome della risorsa da creare.
pOccDialogInfo
Puntatore al modello di finestra di dialogo utilizzato per creare l'oggetto finestra di dialogo.
lpResource
Puntatore a una risorsa.
Valore restituito
Diverso da zero se il controllo è stato creato correttamente; in caso contrario, zero.
COccManager::CreateSite
Chiamato dal framework per creare un sito di controllo, ospitato dal contenitore a cui punta pCtrlCont.
virtual COleControlSite* CreateSite(COleControlContainer* pCtrlCont);
Parametri
pCtrlCont
Puntatore al contenitore di controlli che ospita il nuovo sito di controllo.
Valore restituito
Puntatore al sito di controllo appena creato.
Osservazioni:
Eseguire l'override di questa funzione per creare un sito di controllo personalizzato usando la classe derivata da COleControlSite.
Ogni contenitore di controlli può ospitare più siti. Creare siti aggiuntivi con più chiamate a CreateSite
.
COccManager::GetDefBtnCode
Chiamare questa funzione per determinare se il controllo è un pulsante di pressione predefinito.
static DWORD AFX_CDECL GetDefBtnCode(CWnd* pWnd);
Parametri
pWnd
Oggetto finestra contenente il controllo pulsante.
Valore restituito
Uno dei valori seguenti:
DLGC_DEFPUSHBUTTON Controllo è il pulsante predefinito nella finestra di dialogo.
DLGC_UNDEFPUSHBUTTON Controllo non è il pulsante predefinito nella finestra di dialogo.
0 Il controllo non è un pulsante.
COccManager::IsDialogMessage
Chiamato dal framework per determinare se un messaggio è destinato alla finestra di dialogo specificata e, in caso affermativo, elabora il messaggio.
virtual BOOL IsDialogMessage(
CWnd* pWndDlg,
LPMSG lpMsg);
Parametri
pWndDlg
Puntatore alla finestra di dialogo di destinazione prevista del messaggio.
lpMsg
Puntatore a una MSG
struttura che contiene il messaggio da controllare.
Valore restituito
Diverso da zero se il messaggio viene elaborato; in caso contrario, zero.
Osservazioni:
Il comportamento predefinito di consiste nel verificare la presenza di messaggi da IsDialogMessage
tastiera e convertirli in selezioni per la finestra di dialogo corrispondente. Ad esempio, il tasto TAB, quando viene premuto, seleziona il controllo o il gruppo di controlli successivo.
Eseguire l'override di questa funzione per fornire un comportamento personalizzato per i messaggi inviati alla finestra di dialogo specificata.
COccManager::IsLabelControl
Chiamare questa funzione per determinare se il controllo specificato è un controllo etichetta.
static BOOL AFX_CDECL IsLabelControl(CWnd* pWnd);
static BOOL AFX_CDECL IsLabelControl(COleControlSiteOrWnd* pWnd);
Parametri
pWnd
Puntatore alla finestra contenente il controllo .
Valore restituito
Diverso da zero se il controllo è un'etichetta; in caso contrario zero
Osservazioni:
Un controllo etichetta è uno che agisce come un'etichetta per qualsiasi controllo sia successivo nell'ordinamento.
COccManager::IsMatchingMnemonic
Chiamare questa funzione per determinare se la mnemonica corrente corrisponde a quella rappresentata dal controllo .
static BOOL AFX_CDECL IsMatchingMnemonic(
CWnd* pWnd,
LPMSG lpMsg);
static BOOL AFX_CDECL IsMatchingMnemonic(
COleControlSiteOrWnd* pWnd,
LPMSG lpMsg);
Parametri
pWnd
Puntatore alla finestra contenente il controllo .
lpMsg
Puntatore al messaggio contenente il mnemonico da trovare.
Valore restituito
Diverso da zero se il mnemonico corrisponde al controllo; in caso contrario zero
Osservazioni:
COccManager::OnEvent
Chiamato dal framework per gestire l'evento specificato.
virtual BOOL OnEvent(
CCmdTarget* pCmdTarget,
UINT idCtrl,
AFX_EVENT* pEvent,
AFX_CMDHANDLERINFO* pHandlerInfo);
Parametri
pCmdTarget
Puntatore all'oggetto CCmdTarget
che tenta di gestire l'evento
idCtrl
ID risorsa del controllo.
pEvent
Evento gestito.
pHandlerInfo
Se non è NULL, OnEvent
compila i pTarget
membri e pmf
della AFX_CMDHANDLERINFO
struttura invece di inviare il comando. In genere, questo parametro deve essere NULL.
Valore restituito
Diverso da zero se l'evento è stato gestito; in caso contrario, zero.
Osservazioni:
Eseguire l'override di questa funzione per personalizzare il processo di gestione degli eventi predefinito.
COccManager::P reCreateDialog
Chiamato dal framework per elaborare un modello di finestra di dialogo per i controlli ActiveX prima di creare la finestra di dialogo effettiva.
virtual const DLGTEMPLATE* PreCreateDialog(
_AFX_OCC_DIALOG_INFO* pOccDialogInfo,
const DLGTEMPLATE* pOrigTemplate);
Parametri
pOccDialogInfo
Struttura _AFX_OCC_DIALOG_INFO
contenente informazioni sul modello di finestra di dialogo ed eventuali controlli ActiveX ospitati dalla finestra di dialogo.
pOrigTemplate
Puntatore al modello di finestra di dialogo da utilizzare per la creazione della finestra di dialogo.
Valore restituito
Puntatore a una struttura del modello di finestra di dialogo utilizzata per creare la finestra di dialogo.
Osservazioni:
Il comportamento predefinito esegue una chiamata a SplitDialogTemplate
, determinando se sono presenti controlli ActiveX e quindi restituisce il modello di finestra di dialogo risultante.
Eseguire l'override di questa funzione per personalizzare il processo di creazione di una finestra di dialogo che ospita i controlli ActiveX.
COccManager::P ostCreateDialog
Chiamato dal framework per liberare memoria allocata per il modello di finestra di dialogo.
virtual void PostCreateDialog(_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
Parametri
pOccDialogInfo
Struttura _AFX_OCC_DIALOG_INFO
contenente informazioni sul modello di finestra di dialogo ed eventuali controlli ActiveX ospitati dalla finestra di dialogo.
Osservazioni:
Questa memoria è stata allocata da una chiamata a SplitDialogTemplate
ed è stata usata per tutti i controlli ActiveX ospitati nella finestra di dialogo.
Eseguire l'override di questa funzione per personalizzare il processo di pulizia di tutte le risorse usate dall'oggetto finestra di dialogo.
COccManager::SetDefaultButton
Chiamare questa funzione per impostare il controllo come pulsante predefinito.
static void AFX_CDECL SetDefaultButton(
CWnd* pWnd,
BOOL bDefault);
Parametri
pWnd
Puntatore alla finestra contenente il controllo .
bDefault
Diverso da zero se il controllo deve diventare il pulsante predefinito; in caso contrario, zero.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Nota
Il controllo deve avere il bit di stato OLEMISC_ACTSLIKEBUTTON impostato. Per altre informazioni sui flag OLEMISC, vedere l'argomento OLEMISC in Windows SDK.
COccManager::SplitDialogTemplate
Chiamato dal framework per suddividere i controlli ActiveX dai controlli comuni della finestra di dialogo.
virtual DLGTEMPLATE* SplitDialogTemplate(
const DLGTEMPLATE* pTemplate,
DLGITEMTEMPLATE** ppOleDlgItems);
Parametri
pTemplate
Puntatore al modello di finestra di dialogo da esaminare.
ppOleDlgItems
Elenco di puntatori agli elementi della finestra di dialogo che sono controlli ActiveX.
Valore restituito
Puntatore a una struttura di modello di finestra di dialogo contenente solo controlli non ActiveX. Se non sono presenti controlli ActiveX, viene restituito NULL.
Osservazioni:
Se vengono trovati controlli ActiveX, viene analizzato il modello e viene creato un nuovo modello contenente solo controlli non ActiveX. Tutti i controlli ActiveX trovati durante questo processo vengono aggiunti a ppOleDlgItems.
Se nel modello non sono presenti controlli ActiveX, viene restituito NULL.
Nota
La memoria allocata per il nuovo modello viene liberata nella PostCreateDialog
funzione .
Eseguire l'override di questa funzione per personalizzare questo processo.
Vedi anche
Grafico della gerarchia
Classe COleControlSite
Classe COleControlContainer