2009-11-23 5 views
0

Я спрашивал себя, как работают браузеры. Как браузер сообщает ОС, чтобы изменить указатель мыши из стрелки в ручную (IDC_HAND), например. В настольном приложении я знаю, что используются сообщения Windows (справа), но как это происходит в браузерах? В этом случае Spy ++, похоже, не поймает никаких сообщений указателя мыши. Можете ли вы помочь мне с объяснением?Браузеры и сообщения Windows

Я пытаюсь создать приложение C#, которое будет определять тип указателя мыши.

ответ

1

Окно просмотра браузера - это простое окно с едва ли стандартными событиями. Страница обрабатывается пикселем и обрабатывается позже как растровое изображение. Браузер строит иерархию элементов управления веб-страницы и элементов отображения и сохраняет их в памяти. Всякий раз, когда мышь перемещается по странице, алгоритмы браузера просматривают эту иерархию, чтобы определить, принадлежат ли эти конкретные координаты, скажем, к кнопке или ссылке, а затем изменяют курсор на указатель. Короче говоря, это то, что движок обозревателя. Разделите HTML на иерархию элементов управления, затем проанализируйте CSS и обновите свойства этих элементов, затем визуализируйте элементы управления, рассматриваемые их свойствами, в окне просмотра, затем обработайте ввод пользователя и, когда требуется, инициируйте запрос. Механизм браузера также выполняет JavaScript-код и выполняет манипуляции с структурой документа.

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

1

Вы можете определить конкретный курсор для каждого класса окон. Обратитесь к документации по функции RegisterClassEx и конструкции WNDCLASSEX

HTH.

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