Программирование на языке MFC

Мой второй блог в серии программирования

Имя регистрируемого класса


Функции в качестве аргументов передаются стили окон регистри­руемого класса, хэндлы курсора, фона и иконки. В отличие от преды­дущей эта функция сама формирует имя регистрируемого класса. В том случае, если хэндлы иконки, курсора и фона равны нулю, то имя класса формируется в соответствии с вызовом функции

wsprintf(IpszName,

_T("Afx:%x:%x") , (UINT)hlnst, nClassStyle);

Примером может служить имя Afx:400000:0. Первое число в име­ни класса обозначает хэндл текущей копии приложения, второе число – стиль окон регистрируемого класса.

Если не все параметры, переданные функции, равны NULL, то формируется полное имя класса в соответствии с функцией

wsprintf(IpszName,

_Т("Afх:%х:%х:%х:%х:%х"),

(UINT)hlnst, nClassStyle,

(UINT)hCursor,

(UINT)hbrBackground,

(UINT)hlcon);

Примером такого имени может служить Afx:400000:8:14c6:0:4687. При этом первое число в имени класса означает хэндл текущей копии приложения, вггорое число – стиль окон регистрируемого класса, третье число означает хэндл курсора, четвертое – хэндл фона, и, наконец, пятое – хэндл иконки окна.

После формирования имени класса функция производит запол­нение структуры типа WNDCLASS и регистрирует класс окон, при­чем в качестве имени класса используется только что сформиро­ванное функцией имя.

Зарегистрировав класс окна, можно создавать окно. А создав окно, нужно не забыть его отобразить, верно? Таким образом, мы

«вычислили» те несколько шагов, которые ОБЯЗАТЕЛЬНО нужно вы­полнить при написании программы с использованием MFC:

1. Описываем класс приложения, производный от класса CWinApp.

2. Описываем класс, к которому будет принадлежать главное окно приложения (обычно CFrameWnd или CMDIFrameWnd).

3. Переопределяем метод lnitlnstance() класса приложения.

4. В методе lnitlnstance() создаем новый объект класса, к которо­му будет принадлежать главное окно приложения.

5. Указатель на только что созданный объект записываем в поле m__pMainWnd.

6. Регистрируем класс окон, к которому будет принадлежать глав­ное окно приложения.

7. В методе lnitlnstance() создаем непосредственно окно только что зарегистрированного класса, которое будет являться главным окном приложения.

8. Создаем объект класса приложения.

Исходный текст демонстрационной программы, написанной в соответствии с определенной нами последовательностью шагов, приведен ниже:

#include <afxwin.h>

Похожие статьи: ,