2009-11-23 3 views
0

나는 브라우저가 어떻게 작동하는지 스스로에게 묻고 있었다. 예를 들어 브라우저가 마우스 포인터를 화살표에서 손 (IDC_HAND)으로 변경하는 방법을 OS에 알리는 방법은 무엇입니까? 데스크톱 응용 프로그램에서는 Windows 메시지 (오른쪽)를 사용하지만 브라우저에서 어떻게 발생하는지 알고 있습니까? Spy ++는이 경우 마우스 포인터 메시지를 포착하지 않는 것 같습니다. 설명을 도와 주시겠습니까?브라우저 및 Windows 메시징

마우스 포인터의 유형을 감지하는 C# 응용 프로그램을 빌드하려고합니다.

답변

1

브라우저보기 포트는 거의 표준 이벤트가없는 간단한 창입니다. 페이지는 픽셀로 렌더링되고 나중에 비트 맵으로 처리됩니다. 브라우저는 웹 페이지 컨트롤 및 표시 요소의 계층 구조를 만들고 메모리에 유지합니다. 마우스가 페이지를 가로 질러 움직일 때마다 브라우저 알고리즘은 이러한 계층 구조를 검색하여 이러한 특정 좌표가 버튼이나 링크에 속하는지 식별 한 다음 커서를 포인터로 변경합니다. 간단히 말해서, 그것은 브라우저 엔진에 관한 것입니다. HTML을 컨트롤의 계층 구조로 파싱 한 다음 CSS를 구문 분석하고 이러한 요소의 속성을 업데이트 한 다음 해당 속성을 고려하여 컨트롤을 뷰포트에 렌더링 한 다음 사용자 입력을 처리하고 필요할 때 요청을 시작합니다. 또한 브라우저 엔진은 JavaScript 코드를 실행하고 문서 구조에 대한 조작을 수행합니다.

또한 Linux 용 FireFox가 존재하므로 브라우저 개발자가 표준 Windows 이벤트로 작업하는 것이 적절하지 않음을 기억하십시오. 일부 기본 초기화 코드는 플랫폼에 따라 달라 지지만 윈도우가 준비되고 사용자 입력이 일부 추상화 레이어를 통해 코어로 전달 된 후 브라우저 엔진은 기본 운영 체제 및 해당 이벤트 시스템을 전혀 염두에 두지 않고 게임을 리드합니다.

1

각 창 클래스마다 특정 커서를 정의 할 수 있습니다. 기능 RegisterClassEx 및 구조 WNDCLASSEX

HTH에 대한 설명서를 참조하십시오.