0
다음과 같이 WndProc을 편집하여 표준 제안 된 방법으로 클립 보드 뷰어를 만들었습니다.클립 보드 뷰어 : WM_DRAWCLIPBOARD가 여러 번 발생하는 경우가 있음
case WM_DRAWCLIPBOARD:
Logger.Main.LogMessage("Draw Clipboard event");
if (OnClipboardChanged != null) {
OnClipboardChanged(this, new ViewChangeEventArgs());
}
WindowAPI.SendMessage(NextClipboardViewer, m.Msg, m.WParam, m.LParam);
break;
case WM_CHANGECBCHAIN:
Logger.Main.LogMessage("Change CB Chain");
if (m.WParam == NextClipboardViewer) {
NextClipboardViewer = m.LParam;
}
else {
WindowAPI.SendMessage(NextClipboardViewer, m.Msg, m.WParam, m.LParam);
}
break;
내 응용 프로그램은 클립 보드에서 새 데이터를 사용할 수있을 때 알림을 받아야합니다. 상황이 정상적으로 작동하고 메시지가 제대로 감지됩니다.
때로는 (그리고 이것은 재생하기가 매우 어렵습니다.) 클립 보드의 동일한 데이터와 연관된 동일한 타임 스탬프로 생성 된 WM_DRAWCLIPBOARD 생성 이벤트가 많이 발생합니다. 이 문제의 원인은 무엇입니까? 해당 메시지에 대한 자세한 정보를 얻는 방법에 대한 제안 사항은 무엇입니까?
감사합니다.
"It Happens" - F. Gump –
감사합니다. Chris. 당신은 어떻게 그것을 정상적으로 관리합니까? 받은 메시지가 서로 매우 가깝고 무시하는지 확인합니다. –
예. 일반적으로 당신이하고 싶은 것은 마지막 이벤트에 반응합니다. 보통 500 밀리 초 동안 모든 것이 조용 해지면 스스로를 다시 불러야합니다. –