http://tikitak.narod.ru ---- Главная страница сайта
Шаг 97 - Структура окна на шаг впереди MFC.
При классическом программирование на C под Windows(это ужас честное слово) для того, чтобы окно появилось на экране необходимо заполнить структуру CREATESTRUCT. Вот её описание
typedef struct tagCREATESTRUCT {
LPVOID lpCreateParams;
HANDLE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCSTR lpszName;
LPCSTR lpszClass;
DWORD dwExStyle;
} CREATESTRUCT;
Полное её описание описание надо делать отдельно. Но догадаться о назначении пуктов можно и так. Например cx и cy отвечают за высоту и ширину. Если вы хотите пообщаться с этой структурой, то вы должны перехватить её до начала создания окна и вызова функции CreateWindow. MFC вообще-то сам умеет задавать там параметры, вопрос в том устраивают они Вас или нет. Для того, чтобы получить доступ к этой структуре Вам нужно перегрузить PreCreateWindow из класса CMainFrame. Туда передается указатель на эту структуру и Вы сможете её подправить.
Теория ясна к делу теперь. Итак создаем MFC AppWizard приложение TestCreate как SDI. Сейчас функция вот такая и в её параметрах есть указатель на нашу структуру.
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
Правим ????
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.cx = 50;
cs.cy = 50;
return TRUE;
}
Попробуйте :-))) Будет маленькое такое окно. !!!!!
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|