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 CAxDialogImpl
contenimento del controllo ATL.
Gerarchia di ereditarietà
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;