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 SplitDialogTemplateed è 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