

Программирование на языке 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>
Похожие статьи: CWinApp, lnitlnstance
