마우스에 대한 질문이요.....ㅜ.ㅜ

leo~~~~의 이미지

마우스 움직일 때나 클릭할때 그 움직임을

어떻게 인식하는 건가요??

그니까 마우스가 입력 장치잖아요

마우스를 움직이거나 클릭할 때

그 입력된 데이터를 어떻게 인식하고

어떻게 처리하는지 알고싶어요~

마우스 디바이스 드라이버 보세요

이런 답변말구요....^^;

디바이스 드라이버 봤는데 잘 몰라서

이렇게 질문 올립니다....ㅡ,.ㅡ;;

litdream의 이미지

그렇게 자세한 부분에 초점을 맞추어서 알아낼수 있는 간단한 문제가 아니기에
다음의 링크를 보내드립니다. 이것을 읽어보시면, 어렴풋이 X window system
에서 event handle 이 어떻게 되는지 감이 잡히실것이고, 프로그래밍이 필요
하시다면, 그때 소스를 보시죠.

http://www.faqs.org/docs/Linux-HOWTO/XWindow-Overview-HOWTO.html

간략히, 제가 아는만큼만 적어본다면,
마우스는 일단 하드웨어적으로 PS/2, serial 같은 포트에 붙어서, 신호를
보냅니다. 이런 포트들은 OS kernel 에 인터럽트를 발생시키고, OS 의
인터럽트 핸들러는 처리하는 과정에서 자연스레 해당 application 에게
신호를 보내주게 됩니다. (지금의 경우는 X server 가 되겠습니다.)

Lower level 과는 다르게, X server/client 에서는 message 를 발생함으로
처리됩니다. 이 메세지는 큐에 전달되고, 큐에서는 X event handler 에 의해
차례로 처리됩니다. 이때, 해당 메세지에 대한 call back 이 있을경우
call back 펑션을 불러주고, 없을경우는 무시됩니다.

원하시는게 맞는지..
틀렸다면 과감히 지적부탁드립니다.

삽질의 대마왕...

익명 사용자의 이미지

시리얼 마우스는 자신의 방금전 좌표로 부터 x,y만큼이동한 정보와 버튼의 상태정보(좌,우,중간)를 전송합니다.
중요한 것은 상대좌표라는 것입니다. 또한 표현가능한 좌표도 수비트 정도밖에 안됩니다. 그래서, 이 상대좌표를 입력으로 UI제작자가 적절한 화면크기에 맞는 절대 좌표계로 환산해주어야 합니다. 또한 더블클릭등도 소프트웨어적으로 만들어야 하는것이지요.
아주 오래전 시리얼 마우스는 이러했는데, 아마도 최근의 USB마우스등도 이런식으로 동작하리라고 예상됩니다.

익명 사용자의 이미지

답변 주신 분들 감사합니다~~

제가 초보라서 확실하게

이해 하지는 못했지만

많은 도움이 되었습니다~~^^

감사합니다~~~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.