Condividi tramite


Macro di classi di finestre

Queste macro definiscono utilità della classe finestra.

Nome Descrizione
DECLARE_WND_CLASS Consente di specificare il nome di una nuova classe finestra.
DECLARE_WND_CLASS2 (Visual Studio 2017) Consente di specificare il nome di una nuova classe finestra e la classe contenitore la cui routine finestra userà la nuova classe.
DECLARE_WND_SUPERCLASS Consente di specificare il nome di una classe finestra esistente in cui verrà basata una nuova classe di finestra.
DECLARE_WND_CLASS_EX Consente di specificare i parametri di una classe.

Requisiti

Intestazione: atlwin.h

DECLARE_WND_CLASS

Consente di specificare il nome di una nuova classe finestra. Posizionare questa macro nella classe di controllo di un controllo ActiveX ATL.

DECLARE_WND_CLASS( WndClassName )

Parametri

WndClassName
[in] Nome della nuova classe della finestra. Se NULL, ATL genererà un nome di classe della finestra.

Osservazioni:

Se si usa l'opzione del compilatore /permissive-, DECLARE_WND_CLASS genererà un errore del compilatore; usare invece DECLARE_WND_CLASS2.

DECLARE_WND_CLASS consente di specificare il nome di una nuova classe finestra le cui informazioni verranno gestite da CWndClassInfo. DECLARE_WND_CLASS definisce la nuova classe window implementando la funzione statica seguente:

static CWndClassInfo& GetWndClassInfo();

DECLARE_WND_CLASS specifica gli stili seguenti per la nuova finestra:

  • CS_HREDRAW

  • CS_VREDRAW

  • CS_DBLCLKS

DECLARE_WND_CLASS specifica anche il colore di sfondo della finestra predefinita. Utilizzare la macro DECLARE_WND_CLASS_EX per fornire stili e colori di sfondo personalizzati.

CWindowImpl usa la macro DECLARE_WND_CLASS per creare una finestra basata su una nuova classe di finestra. Per eseguire l'override di questo comportamento, usare la macro DECLARE_WND_SUPERCLASS oppure fornire la propria implementazione della funzione GetWndClassInfo .

Per altre informazioni sull'uso di finestre in ATL, vedere l'articolo Classi finestra ATL.

DECLARE_WND_CLASS2

(Visual Studio 2017) Analogamente a DECLARE_WND_CLASS, ma con un parametro aggiuntivo che evita un errore di nome dipendente durante la compilazione con l'opzione /permissive- .

DECLARE_WND_CLASS2( WndClassName, EnclosingClass )

Parametri

WndClassName
[in] Nome della nuova classe della finestra. Se NULL, ATL genererà un nome di classe della finestra.

EnclosingClass
[in] Nome della classe della finestra che racchiude la nuova classe della finestra. Non può essere NULL.

Osservazioni:

Se si usa l'opzione /permissive-, DECLARE_WND_CLASS genererà un errore di compilazione perché contiene un nome dipendente. DECLARE_WND_CLASS2 richiede di denominare in modo esplicito la classe in cui viene usata questa macro e non causa l'errore nel flag /permissive- . In caso contrario, questa macro è identica a DECLARE_WND_CLASS.

DECLARE_WND_SUPERCLASS

Consente di specificare i parametri di una classe. Posizionare questa macro nella classe di controllo di un controllo ActiveX ATL.

DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )

Parametri

WndClassName
[in] Nome della classe window che superclasserà OrigWndClassName. Se NULL, ATL genererà un nome di classe della finestra.

OrigWndClassName
[in] Nome di una classe di finestra esistente.

Osservazioni:

Questa macro consente di specificare il nome di una classe finestra che superclasserà una classe finestra esistente. CWndClassInfo gestisce le informazioni della superclasse.

DECLARE_WND_SUPERCLASS implementa la funzione statica seguente:

static CWndClassInfo& GetWndClassInfo();

Per impostazione predefinita, CWindowImpl usa la macro DECLARE_WND_CLASS per creare una finestra basata su una nuova classe finestra. Specificando la macro DECLARE_WND_SUPERCLASS in una classe derivata da , CWindowImplla classe window sarà basata su una classe esistente, ma userà la routine della finestra. Questa tecnica è detta superclasse.

Oltre a usare le macro DECLARE_WND_CLASS e DECLARE_WND_SUPERCLASS, è possibile eseguire l'override della funzione GetWndClassInfo con la propria implementazione.

Per altre informazioni sull'uso di finestre in ATL, vedere l'articolo Classi finestra ATL.

DECLARE_WND_CLASS_EX

Consente di specificare il nome di una classe finestra esistente in cui verrà basata una nuova classe di finestra. Posizionare questa macro nella classe di controllo di un controllo ActiveX ATL.

DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )

Parametri

WndClassName
[in] Nome della nuova classe della finestra. Se NULL, ATL genererà un nome di classe della finestra.

style
[in] Stile della finestra.

bkgnd
[in] Colore di sfondo della finestra.

Osservazioni:

Questa macro consente di specificare i parametri della classe di una nuova classe finestra, le cui informazioni verranno gestite da CWndClassInfo. DECLARE_WND_CLASS_EX definisce la nuova classe window implementando la funzione statica seguente:

static CWndClassInfo& GetWndClassInfo();

Se si desidera utilizzare gli stili predefiniti e il colore di sfondo, utilizzare la macro DECLARE_WND_CLASS . Per altre informazioni sull'uso di finestre in ATL, vedere l'articolo Classi finestra ATL.

Vedi anche

Macro