반응형
다이얼로그 박스 내에 버튼하나가 있는데 그 버튼을 누르면 버튼 밑으로 팝업 메뉴가 보이게끔 해보자.
1. 우선은 리소스에 Menu에다가 메뉴를 하나 추가하자. 난 간단히 아래처럼 추가하였다.
( 테스트 1 , 테스트 2 등록함)
2. 다이얼로그에 버튼을 달고 버튼 클릭시 이벤트를 처리할 수 있는 함수를 추가하고.
그 함수 안에 아래처럼 코드를 추가하자.
void CTest_1Dlg::OnBnClickedButton1()
{
CRect rect;
CMenu muTemp, *pContextMenu;
GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rect); // 윈도우 상에 버튼의 위치를 구해오고
muTemp.LoadMenu(IDR_MENU1); // 메뉴는 정의해 놓은 것 중 원하는 것
pContextMenu = muTemp.GetSubMenu(0);
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, rect.left, rect.top + 22, this);
//rect.left와 rect.top은 팝업창이 보여지겔되 x좌표와 y좌표..
}
위에 처럼 구현하여 버튼을 클릭하면 아래 그림처럼 팝업메뉴가 보여진다.
참 쉽죠잉?? 위에 사용된 함수들은 구글링을 통해 알아보면 간단히 알 수 있을것이다.^^
반응형
댓글