안녕하세요?
이번에 화상키보드를 만들려고 하다가 어려움이 있어 이렇게 글을 올립니다.
여러가지 올라온 글을 살펴보고 나름대로 방법을 연구하기도 했지만
많이 힘드네요. 특히 화상키보드에 포커스를 가지 못하도록 하는 부분이
힘들었습니다. WM_MOUSEACTIVATE 메세지를 서브클래싱 하는 것이 제일 확실한
방법이라고 생각이 들어서 시도는 해봤지만 만만치가 안더군요
폼이나 컴포넌트들중 OnMouseActivate가 따로 없는 것 같구요
application.onMessage를 바꾸어서 해보려고 했지만 잘 안되더군요.
델파이에서 WM_MOUSEACTIVATE 메세지를 서브클래싱 하는 방법이나 자료가
있으시다면 좀 알려주시면 참으로 큰 보탬이 되겠습니다.
꼭 좀 부탁드리겠습니다.
아래와 같은식으로 하시면... 간단하면서도 델파이적으로 서브클래싱됩니다. 참고하세요...
폼안에 있는 컨트롤들은... 메세지핸들러를 하나 만들어서 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-->
^^ 항상 즐코하세요...