Q&A

  • RichEdit,마우스 커서위치의 문자열 뽑기
안녕하십니까? 고수님들.



여기 이렇게 좋은 곳이 있는줄 몰랐네여...



무슨 문서들을 richedit에 표시해놓고....

그 가운데 특정 단어들에 대한 참고내용을 아래아 한글의 사전처럼

팝업 화면으로 보여주려고 하는데...

마우스 커서의 아래에 있는 문자열(좌우에 공란으로 구별되어진..)

을 뽑는 방법을 몰라 헤메고 있습니다.



좋은 방법 없습니까?



오늘도 여하튼 승리하시는 날 되시길....



1  COMMENTS
  • Profile
    구창민 1999.09.18 21:02
    노동춘 wrote:

    > 안녕하십니까? 고수님들.

    >

    > 여기 이렇게 좋은 곳이 있는줄 몰랐네여...

    >

    > 무슨 문서들을 richedit에 표시해놓고....

    > 그 가운데 특정 단어들에 대한 참고내용을 아래아 한글의 사전처럼

    > 팝업 화면으로 보여주려고 하는데...

    > 마우스 커서의 아래에 있는 문자열(좌우에 공란으로 구별되어진..)

    > 을 뽑는 방법을 몰라 헤메고 있습니다.

    >

    > 좋은 방법 없습니까?

    >

    > 오늘도 여하튼 승리하시는 날 되시길....

    >



    노동춘님 안녕하세요?

    말씀하신 기능의 구현이 정말 어려워요..

    전에 한번 시도해았다가.. 저의 실력없음을

    다시 한번 깨닫는 계기가 되었지요..에궁..



    윈도우 동호회에 백성수님이 노클릭알고리즘에 대해 설명한 글을 올립니다.

    백성수님은 한컴에서 사전을 개발하신 분이라는군요



    #572 백성수 (bsssmo )

    [참고]노클릭 알고리즘 08/05 12:06 21 line

    0. 도스시절에 램상주 프로그램을 했던 분들이라면 더욱 쉽게 이해하리라

    생각합니다.

    1. 마우스 위치의 윈도우 핸들을 얻는다. (GetCursorPos, WindowFromPoint)

    2. TextOut/ExtTextOut함수를 가로챈다.

    TextOut함수의 주소를 얻고 NewTextOut함수를 만든다. (GetProcAddress)

    기존의 TextOut함수 주소에 기존의 내용을 복사하고 새 NewTextOut함수로

    건너뛸수 있도록 기계어를 세팅한다. ( jmp NewTextOut)

    3. 마우스 위치를 다시 출력하 도록 설정한다. (InvalidateRect, UpdateWindow)

    이렇게 되면 윈도우는 WM_PAINT메시를 날린다. 그리고 출력 함수인 TextOut

    을 호출한다. TextOut은 다시 NewTextOut으로 점프를 하게 되므로 우리가

    원하는 단어의 내용을 얻을 수 있다.

    4. TextOut내용을 원상 복귀한다.

    위의 상화은 16비트로 작성하셔야합니다. 윈 95의 API함수들은 대부분 16비트를

    썽킹(Thunk)해서 쓰고 있기 때문에....

    NT에서는 안됩니다. NT에서는 다른 방법으로 해결해야 합니다.

    나중에 기회가 되면 또 올리죠....



    <끝>