2010-10-04 3 views
0

Через опыт я обнаружил, что родные формы/компоненты Windows не любят меняться. Я знаю, что с помощью Delphi или Visual Studio вам предоставляются собственные компоненты Windows для заполнения формы или окна, а затем вы присоединяете код к событиям, которые могут выполнять эти компоненты (например, onClick).Как работает автономный пользовательский интерфейс Windows?

Однако, как все эти программы, такие как Word или браузер Chrome Google, меняют окно стандартных окон? Я думал, что это как-то защищено?

У Chrome, похоже, есть вкладки на раме окна?

Я знаю, что вы также можете получить набор инструментов, таких как Swing и QT, которые имеют собственные элементы управления/компоненты для заполнения формы. Как это работает? (Как операционная система/компьютер знает, как должна действовать неродная кнопка? Например, кнопки назад и вперед Chrome - это не родные компоненты?).

Я могу понять, как работает OpenGL/DirectX, потому что вы говорите компьютеру, что именно рисовать с помощью полигонов/квадроциклов.

Я надеюсь, что этот вопрос ясен!

ответ

0

Swing ant QT рисует собственные виджеты на низком уровне, используя базовые примитивы, но у них также есть движки тем, которые могут имитировать встроенные элементы управления.

0

Qt переместился на нативные элементы управления некоторое время назад. Что касается того, как это работает, он получает базовое окно от ОС. Затем, как и Opengl \ Directx, он делает все чертеж в этом окне. Что касается того, где позиционировать вещи, что делают менеджеры макетов. Каждый менеджер имеет стиль макета горизонтальный, вертикальный, сетка, компоненты, которые он должен рисовать, и часть окна, которую он должен заполнить. Оттуда он делает довольно легкую математику, чтобы выделить свое пространство для своих элементов управления.

0

Нет никакой магии: элементы управления не нативные просто нарисованы на пустое окно. Или вместо рисования они могут быть представлены как одно из нескольких растровых изображений на основе состояния (то есть: кнопка может быть представлена ​​как .png для нормального состояния, другая .png для нажатого состояния и т. Д.)

3

Windows не защищает элементы GUI. Windows и элементы управления могут быть подклассифицированы для обработки различных операций рисования по-своему. Например, окна могут переопределить и переопределение обработку сообщения WM_NCPAINT сделать пользовательский заголовок окна и рамы:

http://msdn.microsoft.com/en-us/library/dd145212(VS.85).aspx

1

Некоторые элементы управления Windows, имеют режим «владелец-дро». Если вы используете это, вы можете нарисовать элемент управления (или, по крайней мере, жизненно важные части элемента управления), в то время как Windows позаботится об ответе на ввод пользователя стандартным способом.

+1

+1. Иногда также называется User-Drawn, вот документ для пользовательских элементов управления: http://msdn.microsoft.com/en-us/library/b818z6z6.aspx – David

Смежные вопросы