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
Elementy członkowskie
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:
Makro | 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. Na 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
CWndClassInfo
uż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.