Поделиться через


AfxRegisterWndClass

Позволяет регистрировать свои собственные классы окна.

LPCTSTR AFXAPI AfxRegisterWndClass(
   UINT nClassStyle,
   HCURSOR hCursor = 0,
   HBRUSH hbrBackground = 0,
   HICON hIcon = 0 
); 

Параметры

  • nClassStyle
    Определяет стили начертания или комбинации класса окон, созданные с помощью побитового или (**|**Оператор) для класса окна.Список стилей класса см. в разделе layout WNDCLASS в Windows SDK.Если NULL, по умолчанию будет установлено, следующим образом:

    • Задает стиль мыши на CS_DBLCLKS, который отправляет дважды щелкает сообщения в процедуре окна, когда пользователь дважды щелкает мышью.

    • Задает стиль стрелки курсора стандартам IDC_ARROW windows.

    • Задает кисть фона для NULL, поэтому окно не сотрет его фон.

    • Задает значок стандартам, эмблемы развевать-флага значок windows.

  • hCursor
    Задает дескриптор для ресурса курсора, устанавливаемое в каждом окне созданного из класса окна.Если используется значение по умолчанию 0, появится стандартный курсор IDC_ARROW.

  • hbrBackground
    Задает дескриптор для ресурса кисти, устанавливаемое в каждом окне созданного из класса окна.Если используется значение по умолчанию 0, будет иметь кисть фона NULL, и в окне по умолчанию не сотрет его фон при обработке WM_ERASEBKGND.

  • hIcon
    Задает дескриптор для ресурса значка, устанавливаемое в каждом окне созданного из класса окна.Если используется значение по умолчанию 0, появится значок эмблемы развевать-флага стандарт windows.

Возвращаемое значение

Null-завершенная строка, содержащая имя класса.Можно передать это имя класса к функции-члену Создать в CWnd или других производных классах CWnd- для создания окна.Имя создается библиотеки Microsoft Foundation Class.

ПримечаниеПримечание

Возвращаемое значение указателя на статический буфер.Чтобы сохранить эту строку, присвоить его переменной CString.

Заметки

Библиотеки Microsoft Foundation Class автоматически регистрирует несколько стандартных классов окна.Эта функция вызывается, если необходимо зарегистрировать собственные классы окна.

Имя, зарегистрированное для класса AfxRegisterWndClass зависит только от параметров.При вызове AfxRegisterWndClass несколько раз с одинаковыми параметрами, она просто регистрирует класс на первом вызове.Последующие вызовы AfxRegisterWndClass с одинаковыми параметрами просто возвращает уже-регистрированное classname.

При вызове AfxRegisterWndClass для классов CWnd-выведенных кратным с одинаковыми параметрами, то вместо получения отдельный класс окна для каждого класса в общую папку каждого класса тот же класс окна.Это может вызвать проблемы, если стиль класса CS_CLASSDC используется.Вместо нескольких классов окна CS_CLASSDC, необходимо выполнить поиск с одним классом окна CS_CLASSDC и всеми окнами C++, которые используют эту общую папку класса один контроллер домена.Избежать этой проблемы, вызов AfxRegisterClass для регистрации класса.

См. примечание. технический TN001: регистрация класса окна дополнительные сведения о регистрации класса окна и функции AfxRegisterWndClass.

Пример

CString strMyClass;

// load stock cursor, brush, and icon for
// my own window class

try
{
   strMyClass = AfxRegisterWndClass(
      CS_VREDRAW | CS_HREDRAW,
      ::LoadCursor(NULL, IDC_ARROW),
      (HBRUSH) ::GetStockObject(WHITE_BRUSH),
      ::LoadIcon(NULL, IDI_APPLICATION));
}
catch (CResourceException* pEx)
{
   AfxMessageBox(_T("Couldn't register class! (Already registered?)"));
   pEx->Delete();
}

Требования

Header: afxwin.h

См. также

Ссылки

CWnd::Create

CWnd::PreCreateWindow

WNDCLASS

AfxRegisterClass

Основные понятия

Макросы и глобальные MFC