|
응용프로그램이 실행되고 있는 동안 윈도우 어디서건 이벤트가 발생하면 그 걸 감지하도록 하고 싶습니다.
예를 들어서, 응용프로그램이 실행되고 있는동안 다른 작업(ex. 웹서핑)을 하는 도중에 키보드의 'p'키를
누를 경우에 응용프로그램이 일시 정지 한다던가 하는 기능을 구현하고 싶은데요.
제 실력으로는 응용프로그램이 액티브 윈도우가 되어있을 때만 메세지를 받을 수가 있습니다.
이책 저책 뒤지다가 보니까 WaitMessage, GetMessage, PeekMessage라는 함수가 눈에 띄어서
제가 혼자서
void __fastcall TForm1::Button1Click(TObject *Sender){
MSG msg;
BOOL flag = TRUE;
while(flag){
PeekMessage(&msg,NULL,0,0,PM_NOREMOVE);
switch(msg.message){
case WM_KEYDOWN :
Caption = "Key Pressed";
flag = FALSE;
break;
default :
Caption = "No key has pressed.";
}
}
}
이렇게 해 봤는데 버튼1을 누르는 순간 프로그램이 무한루프로 빠져버리네요.
제가 프로그램 실력이 짧고 더구나 영어에는 많이 취약한 터라 도움말을 봐도 도대체가 이해가 안됩니다.
내용에 대해서 아시는 분이 계시면
WaitMessage, GetMessage, PeekMessage 의 차이점과 사용법을 설명해 주시길 부탁드립니다.
덤으로 위 프로그램을 교정해주신다면 금상첨와겠구요. ^^;
|