|
안녕하세요~
오랫만에 들어와보네요!!ㅎㅎ
우선 질문을 하기전에 제가 만들고자하는것은 윈도우 자체적으로 있는 화상키보드와 비슷?혹은 똑같은 기능의
키보드를 만들어보는것입니다.
그러기 위해서 딱 한가지가 걸리는게 있는게 머냐면 마우스 버튼을 다운(이벤트겠죠)을 했을때
기존 포커스 즉 엑티브된 윈도우에서 클릭한 키보드 윈도우로 포커스 혹은 엑티브가 안되게 하는것입니다.
기존의 에디트 박스 같은 경우는 포커스가 잠시 키보드 윈도우로 왔다가 다시 에디트 박스로 가더라도 문자열의
마지막 포커스가 가기때문에 별 문제가 안될꺼 같지만!!!윈도우자체 화상키보드는 아예 포커스가 이동을 안하더라구요
그래서 제 나름대로 화상키보드를 분석을 해보니깐 원리는 간단했습니다.
일단 메모장에 포커스가 있다고 가정하고, 화상키보드의 버튼을 누르면 키가 입력됩니다.
1. 이부분은 윈도우로 메세지를 보내서 키가 입력된것처럼 한것으로 보임(이부분은 구현가능)
2. 키 위를 움직이면 마우스 무브 이벤트가 발생되면서 이전 포커스 혹은 엑티브 되었던 윈도우로 이동됩니다.
(이부부분 역시 구현 가능합니다)
단, 윈도우 창 자체를 클릭할때는 그냥 윈도우 처럼 인식하더군요~
3. 버튼이나 안에 있는 것들은 제가 보기엔 DC를 이용해서 그린거 같습니다.
만약 그렇더라도 마우스 클릭 이벤트를 기존 볼랜드의 마우스 이벤트를 이용하더라도 화면 전환이 이루어졌습니다.
결론!!!넘 거창하네요^^;
이넘은 마우스 클릭 이벤트를 자체적으로 윈도우 메세지를 후킹해서 버튼 색깔 및 다시 그리기, 키보드 버튼 이벤트
발생~등등만 하고는 포커스 이동을 막는 무언가를 하는거 같습니다.
혹시 이부분을 대략적이라도 아시는 분이 있으시면 답변 좀 부탁드리겠습니다.
그럼~~^^
|