Страница 36 из 51
Стили окна При создании окна, в конструкторе будущего окна мы делаем примерно следующее: CMainWin::CMainWin( ) { Create(NULL, "My Programm", WS_OVERLAPPEDWINDOW); }
Что же такое это WS_ ? На самом деле за приставкой WS_ скрывается стиль будущего окна. Ниже идет набор стилей. При задании набора стилей нужно использовать оператор побитового сложения OR ( | ); - WS_BORDER - Создание окна с рамкой.
- WS_CAPTION - Создание окна с заголовком (невозможно использовать одновременно со стилем WS_DLGFRAME).
- WS_CHILD
WS_CHILDWINDOW - Создание дочернего окна (невозможно использовать одновременно со стилем WS_POPUP). - WS_CLIPCHILDREN - Исключает область, занятую дочерним окном, при выводе в родительское окно.
- WS_CLIPSIBLINGS - Используется совместно со стилем WS_CHILD для отрисовки в дочернем окне областей клипа, перекрываемых другими окнами.
- WS_DISABLED - Создает окно, которое недоступно.
- WS_DLGFRAME - Создает окно с двойной рамкой, без заголовка.
- WS_GROUP - Позволяет объединять элементы управления в группы.
- WS_HSCROLL - Создает окно с горизонтальной полосой прокрутки.
- WS_MAXIMIZE - Создает окно максимального размера.
- WS_MAXIMIZEBOX - Создает окно с кнопкой развертывания окна.
- WS_MINIMIZE
WS_ICONIC - Создает первоначально свернутое окно (используется только со стилем WS_OWERLAPPED). - WS_MINIMIZEBOX - Создает окно с кнопкой свертывания.
- WS_OVERLAPPED - Создает перекрывающееся окно (которое, как правило, имеет заголовок и WS_TILED рамку).
- WS_OVERLAPPEDWINDOW - Создает перекрывающееся окно, имеющее стили WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, WS_MAXIMIZEBOX.
- WS_POPUP - Создает popup-окно (невозможно использовать совместно со стилем WS_CHILD.
- WS_POPUPWINDOW - Создает popup-окно, имеющее стили WS_BORDER, WS_POPUP, WS_SYSMENU.
- WS_SYSMENU - Создает окно с кнопкой системного меню (можно использовать только с окнами имеющими строку заголовка).
- WS_TABSTOP - Определяет элементы управления, переход к которым может быть выполнен по клавише TAB.
- WS_THICKFRAME - Создает окно с рамкой, используемой для изменения
- WS_SIZEBOX - размера окна.
- WS_VISIBLE - Создает первоначально неотображаемое окно.
- WS_VSCROLL - Создает окно с вертикальной полосой прокрутки.
Ниже идет программа реализующая окно Windows. При помощи неё поэкспериментируйте со стилями, названными выше. // My.h class CMainWin : public CFrameWnd// Класс создания окна { public: CMainWin();// Конструктор DECLARE_MESSAGE_MAP()// Объявление очереди сообщений };
class CMainApp : public CWinApp// Класс создания приложения { public: BOOL InitInstance();// Точка начала работы приложения };
// My.cpp #include <afxwin.h>// Подключение библиотеки MFC #include "skelet.h"// Содержит определения классов
CMainWin::CMainWin()// Реализация конструктора { CRect r;// Отвечает за размер и позицию окна r.top = r.left = 10;// Расположение окна на экране (сверху и слева) r.bottom = r.right = 200;// Размеры окна
Create(NULL, "Скелет окна", WS_OVERLAPPEDWINDOW, r);// Создание окна }
BOOL CMainApp::InitInstance()// Вместо функции WinMain() (Только для MFC) { m_pMainWnd = new CMainWin;// Создание объекта окна m_pMainWnd -> ShowWindow(m_nCmdShow);// Вывод окна m_pMainWnd -> UpdateWindow();// Обновление окна
return TRUE;// TRUE, если окно создано }
// Реализация очереди сообщений. (пока она пустая) BEGIN_MESSAGE_MAP(CMainWin, CFrameWnd)
END_MESSAGE_MAP()
// Создание экземпляра приложения CMainApp App;
|