안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당자 임펠리테리입니다.
어떤 걸 구현하려고 하는지 구체적으로 알려주셨으면 좋을텐데, 별로 권하고 싶지
않은 코딩을 시도하시려구 하시는군요. 일단 원하시는 걸 구현하려면 SendMessage등
으로 WM_CHAR과 WM_KEYDOWN, WM_KEYUP을 경우에 맞게 다 보내주셔야 합니다. 그런데
이런 메시지들도 에디트의 Enabled속성이 false인 상태에선 전혀 안먹죠. 원하시는게
단지 백스페이스만 먹게 하려는 거라면 차라리 Edit2의 Text 내용만 SelStart 위치로
코딩으로 삭제해 주는게 좋겠습니다. 만약 그게 아니라 커서키나 딜리트 키 등등 다
른 제어키들도 Edit2로 전달하시려면 Text를 수정하는건 너무 코딩 노가다가 되고,
위의 메시지들을 사용해야만 하겠지만, 말씀드린대로 Enabled가 false인 상태에선
아무 소용이 없으니 OnKeyPress, OnKeyDown, OnKeyUp 발생시마다 핸들러에서 Enabled
를 true로 해준다음 SendMessage로 해당 메시지를 보낸후, 다시 Enabled를 false로
세팅해주는게 나을겁니다. 물론 이 경우에 Edit2가 조금 깜빡거릴겁니다만...
그럼 도움되시길 바라면서, 이만...
독립문에서 임펠리테리였습니다.
(cbuilder, skyhi18)
|