본문 바로가기

Language/MFC

Popup Menu Check 하기

Popup 매뉴를 컨트롤 하는 방법은 두가지가 있는데 UICommand 방식은 해봐도 잘 않되더라...

이전에 프로젝트 하면서 만들어놨다~ 싶었는데 제대로 되지 않아 무진장 찾던 중 


http://phiru.tistory.com/80


에 자세히 나와 있어서 글을 퍼왔다. 


문제는 난 이렇게 했는데 처음엔 않되는 것.ㅡㅡ 


테스트 보다 매뉴가 많았기 때문....


일단 기본은 http://phiru.tistory.com/80 에서 발췌한거와 같이 다음과 같다. 


----------------------------------------------------------------------------------------------------


이곳 저곳 돌아다녔는데.. 자세히(?) 설명된게 없고, 

또한 방법도 여러U가지다 보니. 가장 확실한 방법으로 제세히 씁니다.

* MFC 프로젝트에서 Dialog Base로 만들었습니다.

* 이 경우 UPDATE_COMMAND_UI 로 안되는 듯.. 잘 모르겠네요.


1. 프로젝트 생성하고, xxxDlg.h 파일에 변수를 하나 추가한다.

- 이 변수는 체크됬는지 안됬는지 체크 할 껍니다.



2. 리소스 로 가서 마우스 오른쪽 하고 리소스추가 -> Menu 를 새로 만들기 합니다.


3. 추가된 메뉴에서 하부 메뉴들을 만들고 ID를 정합니다.

저는 ID_1_A, ID_1_B, ID_1_C 로 했습니다.



4. 이 만든 메뉴들 위에 마우스를 놓고 마우스 오른쪽 눌러서 이벤트 처리기로 갑니다.
그리고 COMMAND 를 각각 추가 합니다. 그러면 다음 처럼 추가가 되지요.


5. 이제 체크 할 값을 설정 합니다. 다음 처럼요. 저는 1, 2, 3 이렇게 간단히 합니다.


6. 클래스 위자드를 엽니다. (VS6.0 은 컨트롤 + W, VS2010은 컨트롤 + 쉬프트 + 엑스)
그리고 WM_CONTEXTMENU 를 추가 합니다.


7.  그리고 다음처럼 쓰시면 됩니다. 주석 달아놨어요^^


8. 결과는 요렇게.

도움 되셨길 바래용~


-------------------------------------------------------------------------------------------------------------

주매뉴가 하나이면 문제가 않된다 하지만 주매뉴가 여러개라면? 


난 응용력이 개판인가보다.ㅡㅡ



일단 난 1 이라는 주 매뉴가 총 4개가 있다. 


코드상 a,b,c, 가 최하 매뉴이므로 주 매뉴를 선택하고자 할때는 


multemp.GetBufMenu() 의 파라미터를 변경하는게 맞다고 생각했다. 


죽어라 해도 에러가 났다.ㅡㅡ 저 프로젝트 그대로 만들어서 봤는데 문제가 없다는 걸 몸소 체험하고 


pContextMenu->GetSubMenu() 의 파라미터를 변경해보니 젠장 되는군...




일단 만일 주 매뉴가 1,2,3,4 로 총 4개가 있다면, 0부터 해서 pContextMenu->GetSubMenu() 파라미터를 주면 하위 매뉴를 설정 할 수 있다. 


ㅡㅡ 정말 난 바본듯.....




매인 출처 : http://phiru.tistory.com/80