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

Методы управления состоянием окна

В Visual C++ существуют различные типы состояния окна:

  • активное или неактивное (как правило, активное окно выделяется цветом строки заголовка);

  • в фокусе ввода (определяет окно, получающее ввод с клавиатуры);

  • с захваченной мышью - все сообщения от мыши вне зависимости от расположения курсора направляются данному окну;

  • доступное или недоступное.

BOOL IsWindowEnabled () const;

Метод возвращает ненулевое значение, если CWnd доступен для мыши или ввода с клавиатуры, и 0 - в противном случае. BOOL EnableWindow (BOOL bЕпаЫе = TRUE);

Метод переводит CWnd в доступное состояние (параметр равен TRUE) или недоступное состояние (FALSE). При этом метод возвращает ненулевое значение, если ранее CWnd был недоступен.

При выполнении данного метода окну посылается сообщение WM_ENABLE или WM_DISABLED. static CWnd* PASCAL GetActiveWmdow ();

Метод возвращает указатель (временный) на оконный объект, соответствующий текущему активному окну. Если активных окон нет, то метод возвращает значение NULL.

Окно может быть переведено в активное состояние или действиями пользователя, или вызовом метода SetActiveWindow. CWnd* SetActiveWindow ();

Метод делает активным оконный объект CWnd и возвращает указатель ранее активного окна. static CWnd* PASCAL GetCapture ();

Метод возвращает указатель (временный) оконного объекта, захватившего ввод от мыши, или NULL, если мышь не захвачена никаким окном.

CWnd* SetCapture ();

Метод устанавливает оконный объект CWnd, захватывающий ввод от мыши, и возвращает указатель окна, имевший ранее захват ввода от мыши.

Для освобождения мыши от захвата ввода можно использовать метод ReleaseCapture. static CWnd* PASCAL GetFocus ();

Метод возвращает указатель (временный) на оконный объект, имеющий фокус ввода, или NULL, если нет окна с фокусом ввода.

CWnd* SetFocus ();

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

При выполнении метода посылаются сообщения WM_KILLFOCUS и WM_SETFOCUS. (Одновременно при этом активизируется окно, получающее фокус, или его родительское окно - для элементов управления.)

Отметим, что если окно активно, но не имеет фокуса, то при нажатии, любой клавиши будут инициироваться сообщения WM_SYSCHAR, WM_SYSKEYDOWN или WM_SYSKEYUP. static CWnd* PASCAL GetDesktopWindow ();

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

static CWnd* PASCAL GetForegroundWindow ();

Метод возвращает указатель (временный) foreground-окна, также называемого активным окном. В качестве foreground-окна может выступать только окно верхнего уровня: окно-рамка или диалоговое окно. BOOL SetForegroundWindow ();

Метод устанавливает foreground-окно (и активизирует его). При успешном завершении метод возвращает ненулевое значение. HICON Getlcon (BOOL bBiglcori) const;

Метод возвращает указатель на пиктограмму, в противном случае - NULL. Параметры:

bBiglcon - определяет размер пиктограммы: при значении TRUE используется пиктограмма размером 32x32 пикселя, а при значении FALSE - 16x16 пикселей.

HICON Setlcon (HICON hlcon, BOOL bBiglcori);

Метод устанавливает пиктограмму, используемую для данного оконного объекта.

DWORD GetWindowContextHelpId () const;

Метод возвращает ID контекста файла справки для .данного оконного объекта, а при его отсутствии - 0.

BOOL SetWuidowContextHelpId (DWORD dwContextHelpId);

Метод устанавливает ID контекста файла справки для данного оконного объекта. При успешном завершении метод возвращает ненулевое значение.

Параметры:

dwContextHelpId - ID контекста файла справки. Если дочернее окно не имеет своего ID контекста, то оно наследует его от своего родительского окна. Это позволяет определять в приложении только один ID контекста как для диалогового окна, так и для всех расположенных в нем элементов управления. BOOL ModifyStyle (DWORD dwRemove,DWOW) dwAdd, UINT nFlags =0);

Метод изменяет стиль данного окна. При успешном завершении метод возвращает ненулевое значение.

Параметры:

dwRemove - удаляемый набор элементов стиля. dwAdd - добавляемый набор элементов стиля.

nFlags - набор флажков, передаваемый методу SetWindowPos для перерисовки окна, или 0 - если этот метод не следует вызывать (по умолчанию).

Для задания набора стилей можно использовать оператор побитового сложения OR (|).

При ненулевом значении параметра nFlags метод ModifyStyle вызывает API-функцию ::SetWindowPos и выполняется перерисовка окна на основе комбинации nFlags со следующими четырьмя флажками:

SWP_NOSIZE Сохранение текущего размера;

SWP_NOMOVE Сохранение текущей позиции;

SWP_NOZORDER Сохранение текущего Z-упорядочения;

SWP_NOACTIVATE Без активизации окна.

Флажок стиля окна начинается с префикса WS_. Windows позволяет использовать следующие флажки стиля окна:

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 Создает первоначально свернутое окно

WSJCONIC (может использоваться только со стилем

WS_OVERLAPPED);

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 Создает окно с вертикальной полосой прокрутки.

BOOL ModifyStyleEx (DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0) Метод изменяет расширенный стиль окна. При успешном завершении возвращается ненулевое значение.

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