2014-07-17 4 views
0

VS 2010 C++을 사용하고 있습니다. 제어 ID에 대해 동일한 값을 공유하는 동일한 푸시 버튼 컨트롤 126 개가 포함 된 대화 상자 창이 있습니다.
단추를 클릭하고 호스트 대화 상자 창에 결과 WM_COMMAND 메시지가 나타나면 대화 상자 창에서 어떤 누름 단추를 눌렀는지 어떻게 식별 할 수 있습니까? 126 개의 다른 컨트롤 ID 값을 사용할 수는 있지만 좀 더 간결하게하기를 바랬습니다.
아무도 도와 줄 수 있습니까?WM_COMMAND 메시지의 보낸 사람을 식별하는 방법은 무엇입니까?

답변

1

ID 자체는 "무엇이 식별되는지"를 의미합니다. 따라서 별도의 컨트롤 ID가 필요할 것입니다.

특정 단추를 식별하기 위해 각 단추 컨트롤에 대해 다른 것이 있어야합니다.

동일한 컨트롤 ID를 유지하려면 생성 된 각 단추의 핸들 (HWND)을 추적하고 WM_COMMAND 메시지의 LPARAM 매개 변수를 사용하여 핸들을 기준으로 컨트롤을 식별 할 수 있습니다.

각 버튼에 고유 한 텍스트가있는 경우 버튼의 텍스트 속성을 사용할 수 있습니다.

+0

신속하고 정확한 답변을 보내 주셔서 감사합니다. 이 질문을 게시 한 직후, 나는 MSDN 웹 사이트에서 BN_CLICKED를 발견했는데, 이는 hPB == HIWORD (lParam)를 게시 한 답변으로 안내해주었습니다. –

관련 문제