|
안녕하세요?
제 질문은 OnIdle을 빠져나오는 순간을 어떻게 알 수 있는지 궁금합니다.
제가 짠 프로그램이 1분 동안 사용자 입력이 없으면 화면보호를 해주기 위해서 특별한 창을 띄워주려고 합니다.
그래서 FormCreate에서
Application->OnIdle= MyIdleHandler;
라고 해준다음에
실제 MyIdleHandler함수에서는
void __fastcall Form1::MyIdleHandler(TObject *Sender, bool &Done)
{
// 지금까지의 시간을 계산해서 1분이 되었으면 화면보호 창으로 전환해주는 코드
}
위와 같은 처리를 해줍니다.
그런데 만약 1분안에 사용자의 입력(KeyDown, MouseMove, MouseClick, ...) 같은 사용자의 입력이 발생하면 MyIdleHandler 함수에서 지금까지 계산한 시간을 다시 0으로 설정해주려고 합니다.
어떻게 해야할까요?
저는 무식하게 폼의 KeyDown, MouseMove, MouseClick의 이벤트 핸들러에서 다시 0으로 설정해주려고 하는데 이벤트가 발생하지를 않더군요. 아니 발생하는 것이 아니라 폼안의 해당 컨트롤들이 처리를 해버려서 그런것이겠지만요...
그렇담 사용자의 입력이 있다라는 것을 일반적으로 처리할 수 있는 방법이 있는 지 알고싶습니다.
당연히 있겠지요...화면보호기만 봐도 그런것을 처리해주니깐요.
여러분의 도움을 부탁드립니다.
읽어주셔서 감사합니다.
|