Condividi tramite


Classe CAxDialogImpl

Questa classe implementa una finestra di dialogo (modale o senza modalità) che ospita i controlli ActiveX.

Importante

Questa classe e i relativi membri non possono essere usati nelle applicazioni eseguite in Windows Runtime.

Sintassi

template <class T, class TBase = CWindow>
class ATL_NO_VTABLE CAxDialogImpl : public CDialogImplBaseT<TBase>

Parametri

T
Classe derivata da CAxDialogImpl.

TBase
Classe della finestra di base per CDialogImplBaseT.

Membri

Metodi pubblici

Nome Descrizione
CAxDialogImpl::AdviseSinkMap Chiamare questo metodo per consigliare o annullare la visualizzazione di tutte le voci nella mappa eventi della mappa sink dell'oggetto.
CAxDialogImpl::Create Chiamare questo metodo per creare una finestra di dialogo senza modalità.
CAxDialogImpl::D estroyWindow Chiamare questo metodo per eliminare definitivamente una finestra di dialogo senza modalità.
CAxDialogImpl::D oModal Chiamare questo metodo per creare una finestra di dialogo modale.
CAxDialogImpl::EndDialog Chiamare questo metodo per eliminare definitivamente una finestra di dialogo modale.
CAxDialogImpl::GetDialogProc Chiamare questo metodo per ottenere un puntatore alla DialogProc funzione di callback.
CAxDialogImpl::GetIDD Chiamare questo metodo per ottenere l'ID risorsa del modello di finestra di dialogo
CAxDialogImpl::IsDialogMessage Chiamare questo metodo per determinare se un messaggio è destinato a questa finestra di dialogo e, in caso affermativo, elaborare il messaggio.

Membri dati protetti

Nome Descrizione
CAxDialogImpl::m_bModal Variabile esistente solo nelle compilazioni di debug e impostata su true se la finestra di dialogo è modale.

Osservazioni:

CAxDialogImpl consente di creare una finestra di dialogo modale o non modale. CAxDialogImpl fornisce la procedura della finestra di dialogo, che usa il mapping dei messaggi predefinito per indirizzare i messaggi ai gestori appropriati.

CAxDialogImpl deriva da CDialogImplBaseT, che a sua volta deriva da TBase (per impostazione predefinita, CWindow) e CMessageMap.

La classe deve definire un membro IDD che specifica l'ID risorsa del modello di finestra di dialogo. Ad esempio, l'aggiunta di un oggetto Dialog ATL tramite la finestra di dialogo Aggiungi classe aggiunge automaticamente la riga seguente alla classe:

enum { IDD = IDD_MYDLG };

dove MyDialog è il nome breve immesso nella Procedura guidata finestra di dialogo ATL.

Per altre informazioni, vedere Implementazione di una finestra di dialogo .

Si noti che un controllo ActiveX in una finestra di dialogo modale creata con CAxDialogImpl non supporterà i tasti di scelta rapida. Per supportare i tasti di scelta rapida in una finestra di dialogo creata con CAxDialogImpl, creare una finestra di dialogo senza modalità e, usando il proprio ciclo di messaggi, usare CAxDialogImpl::IsDialogMessage dopo aver ottenuto un messaggio dalla coda per gestire un tasto di scelta rapida.

Per altre informazioni su , vedere Domande frequenti sul CAxDialogImplcontenimento del controllo ATL.

Gerarchia di ereditarietà

CMessageMap

TBase

CWindowImplRoot

CDialogImplBaseT

CAxDialogImpl

Requisiti

Intestazione: atlwin.h

CAxDialogImpl::AdviseSinkMap

Chiamare questo metodo per consigliare o annullare la visualizzazione di tutte le voci nella mappa eventi della mappa sink dell'oggetto.

HRESULT AdviseSinkMap(bool bAdvise);

Parametri

bAdvise
Impostare su true se tutte le voci sink devono essere consigliate; false se tutte le voci sink devono essere annullate.

Valore restituito

Restituisce S_OK in caso di esito positivo o errore HRESULT in caso di errore.

CAxDialogImpl::Create

Chiamare questo metodo per creare una finestra di dialogo senza modalità.

HWND Create(HWND hWndParent, LPARAM dwInitParam = NULL);
HWND Create(HWND hWndParent, RECT&, LPARAM dwInitParam = NULL);

Parametri

hWndParent
[in] Handle per la finestra del proprietario.

dwInitParam
[in] Specifica il valore da passare alla finestra di dialogo nel parametro lParam del messaggio WM_INITDIALOG.

RECT&
Questo parametro non viene usato. Questo parametro viene passato da CComControl.

Valore restituito

Handle della finestra di dialogo appena creata.

Osservazioni:

Questa finestra di dialogo viene associata automaticamente all'oggetto CAxDialogImpl . Per creare una finestra di dialogo modale, chiamare DoModal.

Il secondo override viene fornito solo in modo che le finestre di dialogo possano essere usate con CComControl.

CAxDialogImpl::D estroyWindow

Chiamare questo metodo per eliminare definitivamente una finestra di dialogo senza modalità.

BOOL DestroyWindow();

Valore restituito

TRUE se la finestra viene eliminata correttamente; in caso contrario FALSE.

Osservazioni:

Non chiamare DestroyWindow per eliminare definitivamente una finestra di dialogo modale. Chiamare invece EndDialog .

CAxDialogImpl::D oModal

Chiamare questo metodo per creare una finestra di dialogo modale.

INT_PTR DoModal(
    HWND hWndParent = ::GetActiveWindow(),
    LPARAM dwInitParam = NULL);

Parametri

hWndParent
[in] Handle per la finestra del proprietario. Il valore predefinito è il valore restituito della funzione GetActiveWindow Win32.

dwInitParam
[in] Specifica il valore da passare alla finestra di dialogo nel parametro lParam del messaggio WM_INITDIALOG.

Valore restituito

Se ha esito positivo, il valore del parametro nRetCode specificato nella chiamata a EndDialog; in caso contrario, -1.

Osservazioni:

Questa finestra di dialogo viene associata automaticamente all'oggetto CAxDialogImpl .

Per creare una finestra di dialogo senza modalità, chiamare Crea.

CAxDialogImpl::EndDialog

Chiamare questo metodo per eliminare definitivamente una finestra di dialogo modale.

BOOL EndDialog(int nRetCode);

Parametri

nRetCode
[in] Valore da restituire da DoModal.

Valore restituito

TRUE se la finestra di dialogo viene eliminata definitivamente; in caso contrario, FALSE.

Osservazioni:

EndDialog deve essere chiamato tramite la routine della finestra di dialogo. Dopo che la finestra di dialogo viene eliminata definitivamente, Windows usa il valore di nRetCode come valore restituito per DoModal, che ha creato la finestra di dialogo.

Nota

Non chiamare EndDialog per eliminare definitivamente una finestra di dialogo senza modalità. In alternativa, chiama DestroyWindow .

CAxDialogImpl::GetDialogProc

Chiamare questo metodo per ottenere un puntatore alla DialogProc funzione di callback.

virtual DLGPROC GetDialogProc();

Valore restituito

Restituisce un puntatore alla DialogProc funzione di callback.

Osservazioni:

La DialogProc funzione è una funzione di callback definita dall'applicazione.

CAxDialogImpl::GetIDD

Chiamare questo metodo per ottenere l'ID risorsa del modello di finestra di dialogo.

int GetIDD();

Valore restituito

Restituisce l'ID risorsa del modello di finestra di dialogo.

CAxDialogImpl::IsDialogMessage

Chiamare questo metodo per determinare se un messaggio è destinato a questa finestra di dialogo e, in caso affermativo, elaborare il messaggio.

BOOL IsDialogMessage(LPMSG pMsg);

Parametri

pMsg
Puntatore a una struttura MSG contenente il messaggio da controllare.

Valore restituito

Restituisce TRUE se il messaggio è stato elaborato, false in caso contrario.

Osservazioni:

Questo metodo deve essere chiamato dall'interno di un ciclo di messaggi.

CAxDialogImpl::m_bModal

Variabile esistente solo nelle compilazioni di debug e impostata su true se la finestra di dialogo è modale.

bool m_bModal;

Vedi anche

Classe CDialogImpl
Cenni preliminari sulla classe