Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
544.77 Кб
Скачать

Управление размером и положением окна

BOOL GetWindowPlacement (WINDOWPLACEMENT* Ipwndpt) const;

Метод возвращает информацию о положении окна на экране в структуре WINDOWPLACEMENT. При успешном завершении метод возвращает ненулевое значение.

Структура WINDOWPLACEMENT определяется следующим образом:

typedef struct tagWINDOWPLACEMENT { /* wndpl */

UINT length;

UINT flags;

UINT showCmd;

POINT ptMinPosition;

POINT ptMaxPosition;

RECT rcNormalPosition; } WINDOWPLACEMENT;

Эта структура имеет следующие члены: length - длина структуры в байтах;

flags - флажки, определяющие расположение свернутого окна, и метод, восстанавливающий окно:

WPF_SETMINPOSITION - позволяет указывать х и у координаты положения свернутого окна (в члене структуры ptMinPosition);

WPF_RESTORETOMAXIMIZED - определяет режим изменения состояния окна на развернутое (флажок используется, только если для члена showCmd установлено SW_SHOWMINIMIZED). Для данного метода этот член всегда равен нулю;

showCmd - флажки, определяющие текущее состояние окна:

SW_HIDE;

SW_MINIMIZE;

SW_RESTORE (как SW_SHOWNORMAL);

SW_SHOW;

SW_SHOWMAXIMIZED;

SW_SHOWMINIMIZED;

SW_SHOWMINNOACTIVE;

SW_SHOWNA;

SW_SHOWNOACTIVATE;

SW_SHOWNORMAL (как SW_RESTORE);

ptMinPosition - позиция верхнего левого угла свернутого окна; ptMaxPosition - позиция верхнего левого угла развернутого окна; rcNormalPosition - координаты окна в нормальном состоянии (SW_RESTORE). Отметим, что окно может находиться в одном из трех состояний:

  • нормальном;

  • свернутом в пиктограмму;

  • развернутом до полноэкранного представления.

BOOL SetWindowPlacement (const WINDOWPLACEMENT*//>v»W/>Q;

Метод устанавливает состояние и положение окна, определяя новые значения в структуре WINDOWPLACEMENT. При успешном завершении метод возвращает ненулевое значение.

BOOL Islconic () const;

Метод определяет, находится ли окно в свернутом состоянии, и если да, то возвращает ненулевое значение.

BOOL IsZoomed () const;

Метод определяет, находится ли окно CWnd в развернутом состоянии, и если да, то возвращает ненулевое значение.

void MoveWindow (int x, int у, int nWidth, int nffeight, BOOL bRepaint = TRUE); void MoveWindow (LPCRECT ipRect, BOOL bRepaint = TRUE);

Эти методы изменяют размеры и положение данного окна.

Параметры:

х - новая позиция левой стороны окна CWnd. у - новая позиция верхней стороны окна CWnd. п Width - ширина окна CWnd. nHeight - высота окна CWnd.

bRepaint - флажок, определяющий, следует ли перерисовывать окно: при значении TRUE окно CWnd получает сообщение WM_PAINT, вызывающее выполнение метода обработки сообщения OnPaint. При значении FALSE перерисовки не происходит.

Отметим, что если перерисовка не выполняется, то это касается как клиентской, так и системной области окна.

lpRect - объект CRect или структура RECT, определяющие новое положение и размер окна. Положение объекта верхнего уровня указывается относительно верхнего левого угла экрана, о положение дочерних объектов CWnd - относительно верхнего левого угла клиентской области родительского окна.

Метод MoveWindow посылает сообщение WM_GETMINMAXINFO.

BOOL SetWindowPos (const CWnd* p WndlnsertAfter, int x, int y, int ex, int cy, UINT nFlags);

Метод изменяет порядок следования окна в Z-упорядочении, а также его положение и размеры. При успешном завершении метод возвращает) ненулевое значение.

Параметры:

pWndlnsertAfter - определяет объект CWnd, после которого будет помещен текущий объект CWnd в Z-упорядочении. Данный параметр может быть или указателем на объект CWnd, или указывать одно из следующих значений:

wndBottom , wndTop, wndTopMost, wndNoTopMost.

Окно, указываемое как wndTopMost, сохраняет свою верхнюю позицию и в том случае, если оно становится неактивным окном. Такие окна можно рассматривать как окна, обладающие свойством "располагаться поверх других окон".

х и у- новые координаты верхнего левого угла окна. сх и су - новые ширина и высота окна.

nFlags - набор флажков, определяющих размер и положение окна. Этот параметр может указываться как комбинация следующих значений:

SWP_DRAWFRAME - отображать вокруг окна рамку (определенную при создании окна);

SWP_FRAMECHANGED - посылать окну сообщение WM_NCCALCSIZE в любом случае, включая и ситуацию, когда размер окна не изменяется (по умолчанию сообщение посылается только при изменении размера окна);

SWP_HIDEWINDOW - скрыть окно;

SWP_NOACTIVATE - не делать окно активным. Если этот флажок отсутствует, то данное окно будет сделано активным;

SWP_NOCOPYBITS - разрушать данные клиентской области. Если этот флажок отсутствует, то данные будут сохранены и скопированы обратно в клиентскую область после изменения размера и положения окна;

SWP_NOMOVE - сохранить окно в текущей позиции, игнорируя значения параметров х и у;

SWP_NOOWNERZORDER - не изменять позицию родительского окна в Z-упорядочении;

SWP_NOREDRAW - не выполнять перерисовку измененного окна;

SWP_NOREPOSITION - как SWP_NOOWNERZORDER;

SWP_NOSENDCHANGING - предотвращает получение окном сообщения WM_WINDOWPOSCHANGING;

SWP_NOSIZE - сохранить текущий размер окна, проигнорировав параметры сх и су;

SWPNOZORDER - сохранить текущее положения окна в Z-упорядочении (проигнорировав параметр pWndlnsertAfter).,

SWP_SHOWWINDOW - отобразить окно.

Этот метод позволяет изменять размер, положение и Z-упорядочение для любого окна: дочернего окна, popup-окна или окна верхнего уровня.

Для того чтобы создать окно, расположенное поверх других окон, следует или вызвать данный метод с параметром pWndlnsertAfter, равным &wndTopMost, или установить при создании окна флажок стиля WS_EX_TOPMOST.

UINT ArrangelconicWindows ();

Метод упорядочивает все пиктограммы свернутых дочерних окон и при Успешном завершении возвращает высоту одного ряда пиктограмм.

Для того чтобы упорядочить пиктограммы рабочей области экрана (desktop-окно), следует вначале вызовом метода GetDesktopWindow установить указатель на это окно, а затем вызвать для упорядочивания пиктограмм метод ArrangelconicWindows.

Для упорядочивания пиктограмм дочерних окон MDI-окна следует использовать метод CMDIFrameWnd-MDIIconArrange.

void BringWindowToTop ();

Метод размещает данное окно над стеком перекрывающихся окон. Дополнительно этот метод активизирует popup-окно, окно верхнего уровня и дочерние окна.

void GetWindowRect (LPRECT ipRect) const;

Метод возвращает экранные координаты окна CWnd.

Параметры:

IpRect - указатель объекта CRect или структура RECT, в которые заносятся значения экранных координат окна (размер окна включает строку заголовка и рамку окна).

void GetClientRect (LPRECT IpRect) const;

Метод возвращает координаты клиентской области окна CWnd (относительно самого окна).

Параметры:

IpRect - указатель объекта CRect или структура RECT, в которые заносятся значения координат клиентской области окна. При этом координата верхнего левого угла клиентской области будет равна (0,0) и размер области будет указан заданием ширины и высоты (соответственно в членах right и bottom).

Соседние файлы в папке VC++Баженова