관리 메뉴

드럼치는 프로그래머

[API/MFC] CMenu:: TrackPopupMenu() 본문

★─Programing/☆─API | MFC

[API/MFC] CMenu:: TrackPopupMenu()

드럼치는한동이 2012. 3. 2. 14:47

CMenu:: TrackPopupMenu() 

 

BOOL TrackPopupMenu (

UINT nFlags,        //메뉴 윈도우의 위치, 에니메이션효과 등 동작특성을 결정

int x, int y,           //메뉴윈도우를 출력할 기준 좌표 **반드시 스크린 기준이다.
CWnd* pWnd,      // WM_COMMAND 메시지를 전송할 윈도우 객체의 주소.

LPCRECT lpRect = 0    //이값은 현재 사용하지않음.

);

 

nFlags : //메뉴가 나타날 위치의 플래그값

TPM_CENTERALIGN                            지정한 위치의 중앙에 오게한다.

TPM_LEFTALIGN                                 지정한 위치의 좌측 정렬

TPM_RIGHTALIGN                               지정한 위치의 오른족 정렬

TPM_BOTTOMALIGN                            지정한 위치의 바닥에 정렬.

TPM_TOPALIGN                                  지정한 위치의 위쪽에 정렬.

TPM_VCENTERALIGN                          지정한 위치의 수직중앙 정렬.

TPM_LEFTBUTTON                             마우스 왼쪽 버튼을 눌러 팝업메뉴를 선택한다.

TPM_RIGHTBUTTON                           마우스 오른쪽 버튼을 눌러 팝업메뉴를 선택한다.

TPM_RETURNCMD                              TrackPopupMenu 함수가 반환하는 자료형은 BOOL
                                                          형이므로 내부적으로 int형 처리된다. 
                                                          
그러므로 TPM_RETURNCMD를 설정한경우 int형으로
                                                          어떤메뉴를 선택했는지 확인할수있다.


이외에 메뉴의 애니메이션 효과와 관련된 것은 윈도우 운영체재의 설정상 메뉴의 에니메이션 효과를 사용하기로 한 경우에만

적용할 수 있으며 운영체제의 설정 정보는 ::SystemParametersInfo() API함수를 사용해서 알아낼수 있다.

 

윈도우에서 진하게 표시한 부분을 가장많이 사용한다.

 

 

사용예)

 

TrackPopupMenu(

TPM_LEFTBUTTON | TPM_LEFTALIGN,
  ptMenu.x , ptMenu.y,
  AfxGetMainWnd()

);


[출처] http://blog.naver.com/reverse_ing?Redirect=Log&logNo=60140232762
Comments