Udostępnij za pośrednictwem


Klasa CWndClassInfo

Ta klasa udostępnia metody rejestrowania informacji dla klasy okien.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

class CWndClassInfo

Członkowie

Metody publiczne

Nazwa/nazwisko opis
Rejestrowanie Rejestruje klasę okna.

Składowe danych

Nazwa/nazwisko opis
m_atom Unikatowo identyfikuje zarejestrowaną klasę okien.
m_bSystemCursor Określa, czy zasób kursora odwołuje się do kursora systemowego, czy do kursora zawartego w zasobie modułu.
m_lpszCursorID Określa nazwę zasobu kursora.
m_lpszOrigName Zawiera nazwę istniejącej klasy okna.
m_szAutoName Zawiera nazwę wygenerowaną przez atl klasy okna.
m_wc Utrzymuje informacje o klasie okien w WNDCLASSEX strukturze.
pWndProc Wskazuje procedurę okna istniejącej klasy okna.

Uwagi

CWndClassInfo zarządza informacjami klasy okna. Zazwyczaj używasz CWndClassInfo jednego z trzech makr, DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX lub DECLARE_WND_SUPERCLASS, zgodnie z opisem w poniższej tabeli:

Macro opis
DECLARE_WND_CLASS CWndClassInfo rejestruje informacje o nowej klasie okien.
DECLARE_WND_CLASS_EX CWndClassInfo rejestruje informacje o nowej klasie okna, w tym parametry klasy.
DECLARE_WND_SUPERCLASS CWndClassInfo rejestruje informacje o klasie okien opartej na istniejącej klasie, ale używa innej procedury okna. Ta technika jest nazywana superklasą.

Domyślnie CWindowImpl zawiera DECLARE_WND_CLASS makro, aby utworzyć okno na podstawie nowej klasy okna. DECLARE_WND_CLASS zapewnia domyślne style i kolor tła kontrolki. Jeśli chcesz samodzielnie określić styl i kolor tła, utwórz klasę na CWindowImpl podstawie i dołącz makro DECLARE_WND_CLASS_EX w definicji klasy.

Jeśli chcesz utworzyć okno na podstawie istniejącej klasy okien, utwórz klasę na CWindowImpl podstawie i dołącz makro DECLARE_WND_SUPERCLASS w definicji klasy. Przykład:

class ATL_NO_VTABLE CMyWindow :
   OtherInheritedClasses
   public CComControl<CMyWindow>
          // CComControl derives from CWindowImpl
{
public:
   // 1. The NULL parameter means ATL will generate a
   //    name for the superclass
   // 2. The "EDIT" parameter means the superclass is
   //    based on the standard Windows Edit box
   DECLARE_WND_SUPERCLASS(NULL, _T("EDIT"))

   // Remainder of class declaration omitted

Aby uzyskać więcej informacji na temat klas okien, zobacz Klasy okien w zestawie Windows SDK.

Aby uzyskać więcej informacji na temat korzystania z okien w ATL, zobacz artykuł ATL Window Classes (Klasy okien ATL).

Wymagania

Nagłówek: atlwin.h

CWndClassInfo::m_atom

Zawiera unikatowy identyfikator zarejestrowanej klasy okna.

ATOM m_atom;

CWndClassInfo::m_bSystemCursor

Jeśli wartość TRUE, zasób kursora systemowego zostanie załadowany po zarejestrowaniu klasy okna.

BOOL m_bSystemCursor;

Uwagi

W przeciwnym razie zasób kursora zawarty w module zostanie załadowany.

CWndClassInfo używa m_bSystemCursor tylko wtedy, gdy określono DECLARE_WND_CLASS (wartość domyślna w CWindowImpl) lub makro DECLARE_WND_CLASS_EX . W tym przypadku m_bSystemCursor zainicjowano wartość TRUE. Aby uzyskać więcej informacji, zobacz Omówienie CWndClassInfo .

CWndClassInfo::m_lpszCursorID

Określa nazwę zasobu kursora lub identyfikator zasobu w słowach o niskiej kolejności i zero w wyrazie o wysokiej kolejności.

LPCTSTR m_lpszCursorID;

Uwagi

Po zarejestrowaniu klasy okna uchwyt do kursora zidentyfikowany przez m_lpszCursorID jest pobierany i przechowywany przez m_wc.

CWndClassInfo używa m_lpszCursorID tylko wtedy, gdy określono DECLARE_WND_CLASS (wartość domyślna w CWindowImpl) lub makro DECLARE_WND_CLASS_EX . W tym przypadku m_lpszCursorID zainicjowano IDC_ARROW. Aby uzyskać więcej informacji, zobacz Omówienie CWndClassInfo .

CWndClassInfo::m_lpszOrigName

Zawiera nazwę istniejącej klasy okna.

LPCTSTR m_lpszOrigName;

Uwagi

CWndClassInfo używa m_lpszOrigName tylko w przypadku uwzględnienia makra DECLARE_WND_SUPERCLASS w definicji klasy. W tym przypadku CWndClassInfo rejestruje klasę okien na podstawie klasy o nazwie .m_lpszOrigName Aby uzyskać więcej informacji, zobacz Omówienie CWndClassInfo .

CWndClassInfo::m_szAutoName

Przechowuje nazwę klasy okna.

TCHAR m_szAutoName[13];

Uwagi

CWndClassInfoużywa m_szAutoName tylko wtedy, gdy parametr null jest przekazywany do WndClassName DECLARE_WND_CLASS, DECLARE_WND_CLASS_EX lub DECLARE_WND_SUPERCLASS. Usługa ATL utworzy nazwę po zarejestrowaniu klasy okna.

CWndClassInfo::m_wc

Utrzymuje informacje o klasie okien w strukturze WNDCLASSEX .

WNDCLASSEX m_wc;

Uwagi

Jeśli określono DECLARE_WND_CLASS (wartość domyślna w CWindowImpl) lub makro DECLARE_WND_CLASS_EX, m_wc zawiera informacje o nowej klasie okien.

Jeśli określono makro DECLARE_WND_SUPERCLASS , zawiera informacje o superklasie — klasie okien opartej na istniejącej klasie, m_wc ale używa innej procedury okna. m_lpszOrigName i pWndProc zapisz odpowiednio nazwę i procedurę okna istniejącej klasy okien.

CWndClassInfo::p WndProc

Wskazuje procedurę okna istniejącej klasy okna.

WNDPROC pWndProc;

Uwagi

CWndClassInfo używa pWndProc tylko w przypadku uwzględnienia makra DECLARE_WND_SUPERCLASS w definicji klasy. W takim przypadku rejestruje klasę okien opartą na istniejącej klasie, CWndClassInfo ale używa innej procedury okna. Procedura okna istniejącej klasy okien jest zapisywana w pliku pWndProc. Aby uzyskać więcej informacji, zobacz Omówienie CWndClassInfo .

CWndClassInfo::Register

Wywoływana przez CWindowImpl ::Create , aby zarejestrować klasę okna, jeśli nie została jeszcze zarejestrowana.

ATOM Register(WNDPROC* pProc);

Parametry

pProc
[out] Określa oryginalną procedurę okna istniejącej klasy okna.

Wartość zwracana

Jeśli operacja powiedzie się, atom, który jednoznacznie identyfikuje zarejestrowaną klasę okien. W przeciwnym razie 0.

Uwagi

Jeśli określono DECLARE_WND_CLASS (wartość domyślna w CWindowImpl) lub makro DECLARE_WND_CLASS_EX , Register rejestruje nową klasę okien. W tym przypadku parametr pProc nie jest używany.

Jeśli określono makro DECLARE_WND_SUPERCLASS , rejestruje superklasę — klasę okien opartą na istniejącej klasie, Register ale używa innej procedury okna. Procedura okna istniejącej klasy okien jest zwracana w pliku pProc.

Zobacz też

Klasa CComControl
Omówienie klasy