На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

WNDCLASS



The WNDCLASS structure contains the window class attributes that are registered by the RegisterClass function.

typedef struct _WNDCLASS { // wc
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;


Members

style

Specifies the class style(s). Styles can be combined by using the bitwise OR (|) operator. This member can be any combination of the following values:

Value Action
CS_BYTEALIGNCLIENT Aligns the window's client area on the byte boundary (in the x direction) to enhance performance during drawing operations. This style affects the width of the window and its horizontal position on the display.
CS_BYTEALIGNWINDOW Aligns a window on a byte boundary (in the x direction) to enhance performance during operations that involve moving or sizing the window. This style affects the width of the window and its horizontal position on the display.
CS_CLASSDC Allocates one device context to be shared by all windows in the class. Because window classes are process specific, it is possible for multiple threads of a multithreaded application to create a window of the same class. It is also possible for the threads to attempt to use the device context simultaneously. When this happens, the operating system allows only one of the threads to successfully finish its drawing operation.
CS_DBLCLKS Sends double-click messages to the window procedure when the user double-clicks the mouse while the cursor is within a window belonging to the class.
CS_GLOBALCLASS Allows an application to create a window of the class regardless of the value of the hInstance parameter passed to the CreateWindow or CreateWindowEx function. If you do not specify this style, the hInstance parameter passed to the CreateWindow (or CreateWindowEx) function must be the same as the hInstance parameter passed to the RegisterClass function.
You can create a global class by creating the window class in a dynamic-link library (DLL) and listing the name of the DLL in the registry under the following keys:
HKEY_LOCAL_MACHINE\Software
\Microsoft\Windows NT\
CurrentVersion\Windows\APPINIT_DLLS
Whenever a process starts, the operating system loads the specified DLLs in the context of the newly started process before calling the main function in that process. The DLL must register the class during its initialization procedure and must specify the CS_GLOBALCLASS style.
CS_HREDRAW Redraws the entire window if a movement or size adjustment changes the width of the client area.
CS_NOCLOSE Disables the Close command on the System menu.
CS_OWNDC Allocates a unique device context for each window in the class.
CS_PARENTDC Sets the clipping region of the child window to that of the parent window so that the child can draw on the parent. A window with the CS_PARENTDC style bit receives a regular device context from the system's cache of device contexts. It does not give the child the parent's device context or device context settings. Specifying CS_PARENTDC enhances an application's performance.
CS_SAVEBITS Saves, as a bitmap, the portion of the screen image obscured by a window. Windows uses the saved bitmap to re-create the screen image when the window is removed. Windows displays the bitmap at its original location and does not send WM_PAINT messages to windows obscured by the window if the memory used by the bitmap has not been discarded and if other screen actions have not invalidated the stored image. This style is useful for small windows (for example, menus or dialog boxes) that are displayed briefly and then removed before other screen activity takes place. This style increases the time required to display the window, because the operating system must first allocate memory to store the bitmap.
CS_VREDRAW Redraws the entire window if a movement or size adjustment changes the height of the client area.


lpfnWndProc

Points to the window procedure. For more information, see WindowProc.

cbClsExtra

Specifies the number of extra bytes to allocate following the window-class structure. The operating system initializes the bytes to zero.

cbWndExtra

Specifies the number of extra bytes to allocate following the window instance. The operating system initializes the bytes to zero. If an application uses the WNDCLASS structure to register a dialog box created by using the CLASS directive in the resource file, it must set this member to DLGWINDOWEXTRA.

hInstance

Identifies the instance that the window procedure of this class is within.

hIcon

Identifies the class icon. This member must be a handle of an icon resource. If this member is NULL, an application must draw an icon whenever the user minimizes the application's window.

hCursor

Identifies the class cursor. This member must be a handle of a cursor resource. If this member is NULL, an application must explicitly set the cursor shape whenever the mouse moves into the application's window.

hbrBackground

Identifies the class background brush. This member can be a handle to the physical brush to be used for painting the background, or it can be a color value. A color value must be one of the following standard system colors (the value 1 must be added to the chosen color). If a color value is given, you must convert it to one of the following HBRUSH types:

COLOR_ACTIVEBORDER
COLOR_ACTIVECAPTION
COLOR_APPWORKSPACE
COLOR_BACKGROUND
COLOR_BTNFACE
COLOR_BTNSHADOW
COLOR_BTNTEXT
COLOR_CAPTIONTEXT
COLOR_GRAYTEXT
COLOR_HIGHLIGHT
COLOR_HIGHLIGHTTEXT
COLOR_INACTIVEBORDER
COLOR_INACTIVECAPTION
COLOR_MENU
COLOR_MENUTEXT
COLOR_SCROLLBAR
COLOR_WINDOW
COLOR_WINDOWFRAME
COLOR_WINDOWTEXT



The operating system automatically deletes class background brushes when the class is freed. An application should not delete these brushes, because a class may be used by multiple instances of an application.
When this member is NULL, an application must paint its own background whenever it is requested to paint in its client area. To determine whether the background must be painted, an application can either process the WM_ERASEBKGND message or test the fErase member of the PAINTSTRUCT structure filled by the BeginPaint function.

lpszMenuName

Points to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file. If you use an integer to identify the menu, use the MAKEINTRESOURCE macro. If this member is NULL, windows belonging to this class have no default menu.

lpszClassName

Points to a null-terminated string or is an atom. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be in the low-order word of lpszClassName; the high-order word must be zero.

If lpszClassName is a string, it specifies the window class name.



See Also

BeginPaint, CreateWindow, CreateWindowEx, GetDC, GlobalAddAtom, MAKEINTRESOURCE, PAINTSTRUCT, RegisterClass, WNDCLASSEX, WindowProc, WM_PAINT


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

WNDCLASS



Структура WNDCLASS содержит атрибуты класса окна, которые зарегистрированы функцией RegisterClass.

typedef struct _WNDCLASS { // стиль wc UINT;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
hInstance РУЧКИ;
HICON hIcon;
hCursor HCURSOR;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS;


Участники

стиль

Определяет стиль класса(классов). Стили могут быть объединены использованием поразрядный ИЛИ оператор (|). Этот член может быть любой комбинацией следующего величин:

Действие Величины
CS_BYTEALIGNCLIENT Выравнивает область клиента окна на байтовой границе (в x направлении), чтобы повышать исполнение в течение чертежа действий. Этот стиль влияет на ширину окна и горизонтальной позиции в показе.
CS_BYTEALIGNWINDOW Выравнивает окно на байтовой границе (в x направлении), чтобы повышать исполнение в течение действий, которые включают перемещение или измеряя окно. Этот стиль влияет на ширину окна и горизонтальной позиции в показе.
CS_CLASSDC Распределяет один контекст устройства, который нужно распространяться всем окном в классе. Поскольку классы окна являются процессом специфическим, он возможно для многочисленной резьбы multithreaded приложения создавать окно того же самого класса. Также возможно для резьбы пытаться использовать контекст устройства одновременно. Когда это случается, операционная система позволяет одну из резьбы, чтобы успешно завершать свое действие чертежа.
CS_DBLCLKS Посылает двойной щелчок сообщений в процедуру окна когда потребитель двойные-щелчки мышь тогда как курсор - в пределах окна, принадлежащего классу.
CS_GLOBALCLASS Позволяет приложение, чтобы создавать окно класса независимо от величины параметра hInstance пройденного на CreateWindow или функцию CreateWindowEx. Если Вы не определяете этот стиль, параметр hInstance проходил в CreateWindow функции (или CreateWindowEx) должно быть таким же как и параметр hInstance проходил в функцию RegisterClass.
Вы можете создать глобальный класс создавая класс окна на динамической связи библиотеки (DLL) и листинга имени DLL в регистрации под следующими ключами:
HKEY_LOCAL_MACHINE\Software \Microsoft\Windows NT\ CurrentVersion\Windows\APPINIT_DLLS
Всякий раз, когда процесс начинается, операционная система загружает определенный DLLs в контексте вновь начатого процесса перед разговором основной функции в этом процессе. DLL Должен зарегистрировать класс в течение своей процедуры инициализации и должен определить стиль CS_GLOBALCLASS.
CS_HREDRAW Перерисовывает целое окно если перемещение или размер установки изменяет ширину области клиента.
CS_NOCLOSE Выводит из строя Закрытую команду в меню Системы.
CS_OWNDC Распределяет уникальный контекст устройства для каждого окна в классе.
CS_PARENTDC Устанавливает вырезать область окна ребенка в то самое родительское окно чтобы ребенок может сделать на родителе. Окно с битом стиля CS_PARENTDC получает регулярный контекст устройства из системного кеша контекстов устройства. Это не дает ребенку родительский контекст устройства или контекстных установочных параметров устройства. Определение CS_PARENTDC повышает прикладное исполнение.
CS_SAVEBITS Сохраняет, как побитовое отображение, часть экранного образа затемнялась окном. Windows использует сохраненное побитовое отображение, чтобы восстанавливать экранный образ когда окно удалено. Windows отображает побитовое отображение в своей оригинальной позиции и не посылает сообщения WM_PAINT в окно затемненное окном если память использованная побитовым отображением не отвергнута и если другие экранные действия не аннулировали бы загруженный образ. Этот стиль полезный для небольшого окна (например, меню или диалоговые блоки), что отображаться кратко и затем удаленное прежде, чем другая экранная деятельность произойдет. Этот стиль увеличивает время требовавшееся, чтобы отображать окно, поскольку операционная система должна сначала распределить память, чтобы загружать побитовое отображение.
CS_VREDRAW Перерисовывает целое окно если перемещение или размер установки изменяет высоту области клиента.


lpfnWndProc

Точки на процедуру окна. Более подробно, смотри WindowProc.

cbClsExtra

Определяет количество дополнительных байтов, чтобы распределять следуя за окном-классом структуры. Операционная система инициализирует байты в нуль.

cbWndExtra

Определяет количество дополнительных байтов, чтобы распределять следуя за примером окна. Операционная система инициализирует байты в нуль. Если приложение использует структуру WNDCLASS, чтобы регистрировать диалогового блока созданного использованием директивы КЛАССА в файле ресурса, оно должно установить этот элемент на DLGWINDOWEXTRA.

hInstance

Идентифицирует пример в пределах которого процедура окна этого класса.

hIcon

Идентифицирует иконку класса. Этот элемент должен быть ручкой иконного ресурса. Если этот элемент НЕДЕЙСТВИТЕЛЕН, приложение должно сделать иконкой всякий раз, когда пользователь минимизирует прикладное окно.

hCursor

Идентифицирует курсор класса. Этот элемент должен быть ручкой ресурса курсора. Если этот элемент НЕДЕЙСТВИТЕЛЕН, приложение должно явно установить форму курсора всякий раз, когда мышь перемещается в прикладное окно.

hbrBackground

Идентифицирует щетку фона класса. Этот элемент может быть ручкой в физической щетке, чтобы быть использованн для живописи фона, или это может быть цветной величиной. Цветная величина должна быть одним из следующих стандартных системных цветов ( величина 1 должна быть добавлена к выбранному цвету). Если цветная величина дана, Вы должны преобразовать это в одно из следующего типов HBRUSH:

COLOR_ACTIVEBORDER COLOR_ACTIVECAPTION COLOR_APPWORKSPACE COLOR_BACKGROUND COLOR_BTNFACE COLOR_BTNSHADOW COLOR_BTNTEXT COLOR_CAPTIONTEXT COLOR_GRAYTEXT COLOR_HIGHLIGHT COLOR_HIGHLIGHTTEXT COLOR_INACTIVEBORDER COLOR_INACTIVECAPTION COLOR_MENU COLOR_MENUTEXT COLOR_SCROLLBAR COLOR_WINDOW COLOR_WINDOWFRAME COLOR_WINDOWTEXT



Операционная система автоматически удаляет щетки фона класса когда класс освобожден. Приложение не должно удалять эти щетки, поскольку класс может быть использован многочисленными примерами приложения.
Когда этот элемент НЕДЕЙСТВИТЕЛЕН, приложение должно закрасить свой собственный фон всякий раз, когда оно требуется, чтобы закрашиваться в своей области клиента. Чтобы определять должен фон быть закрашен, приложение может или обрабатывать сообщение WM_ERASEBKGND или тестировать fErase элемент структуры PAINTSTRUCT заполненной функцией BeginPaint.

lpszMenuName

Точки на недействительный расторгнутую символьную строку, что определяет имя ресурса меню класса, так как имя появляется в файле ресурса. Если Вы используете целое, чтобы идентифицировать меню, используйте макро MAKEINTRESOURCE. Если этот элемент НЕДЕЙСТВИТЕЛЕН, окно, принадлежащее этому классу не имеет по умолчанию меню.

lpszClassName

Точки на недействительный расторгнутую строку или - атом. Если этот параметр является атомом, он должен быть глобальным атомом созданным предшествующим вызовом в функцию GlobalAddAtom. Атом, 16- битовая величина, должно быть в младшем слове lpszClassName; старшее слово должно - нулевым.

Если lpszClassName - строка, это определяет имя класса окна.



Смотри Также

BeginPaint, CreateWindow, CreateWindowEx, GetDC, GlobalAddAtom, MAKEINTRESOURCE, PAINTSTRUCT, RegisterClass, WNDCLASSEX, WindowProc, WM_PAINT


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz