Q&A

  • WM_MOUSEACTIVATE 서브클래싱 방법 좀...
안녕하세요?

이번에 화상키보드를 만들려고 하다가 어려움이 있어 이렇게 글을 올립니다.

여러가지 올라온 글을 살펴보고 나름대로 방법을 연구하기도 했지만

많이 힘드네요. 특히 화상키보드에 포커스를 가지 못하도록 하는 부분이

힘들었습니다. WM_MOUSEACTIVATE 메세지를 서브클래싱 하는 것이 제일 확실한

방법이라고 생각이 들어서 시도는 해봤지만 만만치가 안더군요

폼이나 컴포넌트들중 OnMouseActivate가 따로 없는 것 같구요

application.onMessage를 바꾸어서 해보려고 했지만 잘 안되더군요.

델파이에서 WM_MOUSEACTIVATE 메세지를 서브클래싱 하는 방법이나 자료가

있으시다면 좀 알려주시면 참으로 큰 보탬이 되겠습니다.

꼭 좀 부탁드리겠습니다.
1  COMMENTS
  • Profile
    최용일 2005.05.24 21:59
    안녕하세요. 최용일입니다.

    아래와 같은식으로 하시면... 간단하면서도 델파이적으로 서브클래싱됩니다. 참고하세요...

    폼안에 있는 컨트롤들은... 메세지핸들러를 하나 만들어서 WindowProc을 바꿔주시면 됩니다.

    이거에 대한것은 델파이 도움말 예제를 참고하세요...

    이외에 여러가지 방법들이 있습니다.

    <!--CodeS-->
    type
        TForm1 = class(TForm)
           ......
            procedure WMMouseActivate(var LwMsg: TMessage); message WM_MOUSEACTIVATE;
        end;

    inpmenentation

    procedure TForm1.WMMouseActivate(var LwMsg: TMessage);
    begin
        LwMsg.Result := MA_NOACTIVATE;
    end;
    <!--CodeE-->

    ^^ 항상 즐코하세요...