개발자 블로그

트레이 아이콘 컨텍스트 메뉴 띄울 때 시스템 메뉴가 같이 뜨는 문제 본문

프로그래밍/MFC

트레이 아이콘 컨텍스트 메뉴 띄울 때 시스템 메뉴가 같이 뜨는 문제

로이드.Roid 2017. 7. 23. 10:40

문제의 현상을 조금 구체적으로 설명하면, 

일단 Windows7에서는 문제가 안되고, Windows10에서만 발생한다. (Windows8은 없어서 테스트 못해 봄) 트레이 영역에 생성한 아이콘을 마우스 우클릭 했을 때 컨텍스트 메뉴를 띄워주는데, 윈도우의 시작표시줄을 우클릭 했을 때 뜨는 컨텍스트 메뉴가 동시에 떠버리는 현상이다. 같이 뜨는 것 자체도 문제지만, 이렇게 동시에 떴을 때 아래 이미지처럼 z-order가 시작표시줄이나 시스템 컨텍스트 메뉴보다도 더 밑에 위치해 있어서 선택하는 것 역시 쉽지가 않다. 


문제의 원인을 파악하는건 어렵지만 해결 방법은 매우 간단한 경우가 많은데, 이번에도 그랬다..

마우스 우클릭 이벤트를 잡는 부분의 코드를 WM_RBUTTONDOWN 이벤트를 잡아서 처리했는데, 이걸 WM_RBUTTONUP 이벤트를 잡아서 처리하도록 변경 해주면 모든것이 정상적으로 동작한다. 

아, SetForegroundWindow()를 호출하는 것도 깜빡하지 말자.


근데 뭐.. 요즘 MFC 쓰는 프로그램이 아직도 있을라나..?

Comments