VC++ MFC 응용 프로그램이 있고 CMainFrame 메뉴 모음을 통해 컨텍스트 메뉴를 표시해야합니다. 나는를 CMainFrame에 WM_CONTEXTMENU에 대한 처리기를 추가하고 나는 도구 모음 (또한 창 제목)을 통해 나의 상황에 맞는 메뉴를 표시 할 수 있어요하지만 난 바로 스파이에게 ++ 유틸리티를 사용하여 도구 모음MFC 응용 프로그램 메인 프레임 menubar를 통해 컨텍스트 메뉴 표시
1
A
답변
3
에서 클릭 할 때 핸들이 호출되지 않습니다 다음과 같은 메시지 추적 정보의 일반적인 응용 프로그램 결과의 클라이언트 도구 모음이나 캡션 영역을 마우스 오른쪽 버튼으로 클릭 : 메뉴에
<02620> 005503AE P WM_RBUTTONDOWN fwKeys:MK_RBUTTON xPos:1048 yPos:7
<02621> 005503AE P WM_RBUTTONUP fwKeys:0000 xPos:1048 yPos:7
<02622> 005503AE S WM_CONTEXTMENU hwnd:005503AE xPos:1174 yPos:63
그러나 마우스 오른쪽 버튼으로 클릭은 스파이 ++ 메시지 창에 해당하는 추적 정보를 생성하지 않습니다. 그래서 표준 Windows 동작처럼 보입니다.
나는 Windows가 WM_RBUTTONDOWN 및 WM_RBUTTONUP에 응답 메시지를 WM_CONTEXTMENU 메시지를 생성하는 것으로 의심하고 마우스 오른쪽 메뉴를 클릭 할 때이 있기 때문에, 더 팝업 컨텍스트 메뉴가 표시되지 생성되지 않습니다.당신이 정말로이 동작을 원한다면, 당신이 할 수있는 것은 함정이 WM_NCRBUTTONDOWN 클라이언트 마우스 메시지이며,이 메시지 핸들러 내부 프레임 창에 자신의 WM_CONTEXTMENU 메시지를 게시 할 수 있습니다.
1
올바른 방향으로 나를 안내해 주셔서 감사합니다. WM_NCRBUTTONUP 메시지를 처리하고 핸들러 내부에서 메뉴 막대에 점이 있는지 여부를 확인하여이를 수행 할 수있었습니다.
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_CONTEXTMENU() ON_WM_NCRBUTTONUP() END_MESSAGE_MAP() void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point) { // do not display our popup menu for title bar, etc CRect rcClient; GetClientRect(rcClient); ClientToScreen(rcClient); if (rcClient.PtInRect(point)) PopupMenu(point); else __super::OnContextMenu(pWnd, point); } void CMainFrame::OnNcRButtonUp(UINT nHitTest, CPoint point) { if (nHitTest == HTMENU) PopupMenu(point); CFrameWnd::OnNcRButtonUp(nHitTest, point); } int CMainFrame::PopupMenu(CPoint &point) { // display popup menu .... }
관련 문제
- 1. 표시 컨텍스트 메뉴 (마커)
- 2. 컨텍스트 메뉴 표시
- 3. Menubar를 사용하지만 Dock이없는 코코아 응용 프로그램 아이콘/스위치
- 4. win7 응용 프로그램에 작업 표시 줄 컨텍스트 메뉴 추가
- 5. 프로그래밍 방식으로 응용 프로그램 메뉴 표시 (wp7)
- 6. 외부 응용 프로그램 메뉴 확장
- 7. 응용 프로그램 컨텍스트 bean
- 8. 응용 프로그램 컨텍스트 얻기
- 9. C# winforms 응용 프로그램에서 윈도우 (파일/디렉토리) 컨텍스트 메뉴 표시
- 10. PyQt4 트레이 아이콘 응용 프로그램 컨텍스트 메뉴 항목이 작동하지 않습니다.
- 11. MFC 컨테이너 기반 응용 프로그램
- 12. VC++ 및 MFC 응용 프로그램
- 13. VC++ 및 MFC 응용 프로그램
- 14. 동적 컨텍스트 메뉴 옵션
- 15. MVC 메인 메서드 내에서 실행중인 응용 프로그램
- 16. 오른쪽 탐색기 컨텍스트 메뉴 (IID_IContextMenu?)
- 17. MFC 메뉴 드롭 다운 (스크린 샷 포함)
- 18. 시트가 표시 될 때 사용할 수있는 메인 메뉴
- 19. 새로 고침 응용 프로그램 컨텍스트
- 20. Java 웹 응용 프로그램 컨텍스트
- 21. 긴밀한 VNC에서 MenuBar를 숨기는 방법?
- 22. MFC 응용 프로그램 용 .net 플러그인을 만드시겠습니까?
- 23. 컨텍스트 메뉴 - 자바 스크립트
- 24. .NET 메인 메뉴 도움말
- 25. Win32/MFC 응용 프로그램 개발 옵션
- 26. 컨텍스트 메뉴 항목에서 코코아 응용 프로그램을 호출하십시오.
- 27. 브라우저의 컨텍스트 메뉴 편집
- 28. 동적 컨텍스트 메뉴 항목
- 29. 목록보기에서 안드로이드 컨텍스트 메뉴
- 30. MEF를 사용하여 .NET 응용 프로그램에서 메뉴 및 컨텍스트 메뉴 확장