2014-11-09 5 views
0

편집 : 여기에 붙여 넣은 코드를 삭제하십시오. 내 코드의 오류로 인해 설명 된 동작이 발생했습니다 (switch 문에 break이 누락되었습니다). 메시지 상자 경우 팝업 것 : GetMessage에서 메시지를 처리 ​​switch 문에서 GetMessage의 Windows 메시지 9?

, 나는 ( http://www.mazama.net/scheme/v12/w32message.scm 내가 여기 목록을 사용하여) 별명 정의가없는 메시지의 몇 정수 값에 던져 이 메시지들 중 하나가 수신되었습니다. 내 이름은 익명의 메시지가 단순히 더 이상 사용되지 않으며 결코 나타나지 않을 것이라는 것이었다.

나는 또한 그것을 클릭하면 창을 최소화 해야하는 WM_ACTIVATE 아래에 몇 가지 코드를 시도했다. 나는 창문이 열리 자마자 창을 최소화 할 수 있도록 뭔가를 엉망으로 만들었지 만, 그것이 나를 여기로 데려온 것이 아니다. 창이 열리고 최소화되는 즉시 Windows에서 메시지 9를 보낸다고 알리는 메시지 상자가 나타납니다. 메시지 상자를 닫으면 메시지 상자가 다시 나타납니다.

그래서 궁금한데, 어떤 사람이 그 메시지를 유발시키는 지 아는 사람이 있습니까? 또는 별칭이없는 GetMessage에 의해 반환 된 정수 값 중 하나입니까? Windows 메시지를 나열한 모든 항목은 위에 게시 한 링크와 동일한 번호를 생략했습니다.

+0

'break'문이 모두 각각의 사례 블록에서 벗어난 것처럼 보입니다. – Hosch250

+0

@ hosch250 네 말이 맞아. 나는 WndProc이 실제로 그 메시지를받지 못하도록 메시지 상자를 띄우려는 스위치 문 바로 위의'switch' 문 부분에서'중단 '을 놓치고있었습니다. 내가 어떻게 그것을 놓쳤는지 모르겠다. 아래 질문에 대한 답변을 남겨주세요. – jmccracken

답변

0

공개 헤더 파일에 나열되지 않은 낮은 번호의 메시지는 호환성을 위해 유지되는 Windows 3.1 이전 버전의 메시지 일 가능성이 큽니다 (또는 Microsoft에서 메시지 헤더를 제거하기에 충분하다고 결정한 사람이 없어서) .

소스에서 Wine 또는 ReactOS와 같은 다양한 Windows 대체 프로젝트에 대한 단서를 찾을 수 있습니다. ReactOS에 헤더에서 사실에서 :

#define WM_SETVISIBLE  0x00000009 

이것은 WM_SHOWWINDOW 메시지에 전신이었던 것으로 보인다 같은 인수와 동시에 전송됩니다.

또한 a newsgroup thread에있는 0x0004 메시지에 대한 토론을 발견했습니다. 심지어 ReactOS도 알 수없는 것 같습니다. 거기에 메시지는 WM_SIZEWAIT으로 설명되어 있지만 그 기능에 대한 단서는 없습니다.

간단히 말해서, 이러한 메시지는 문서화되지 않은 것이므로 작성해야 할 소프트웨어가 필요하지 않거나 사용하지 않아도되므로 무시해야합니다.

+0

감사합니다. 내가 그 메시지를 받고 있다고 생각했기 때문에 나는 호기심이 많았지 만, 나는 그 메시지 바로 위의'WM_ACTIVATE' 케이스에서'break' 문을 잃어 버렸습니다. 나열되지 않은 메일은 실제로 메시지 대기열에서 수신되지 않을 것으로 판단됩니다. – jmccracken