MFC 기반에서의 context popup menu 띄워보자.
XXX.cpp 에서 (오른쪽 버튼이 눌렸을 때라 가정)
void XXXXX::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu;
// 팝업 메뉴를 생성한다.
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING, ID_MENU1, _T("Menu 1"));
menu.AppendMenu(MF_STRING, ID_MENU2, _T("Menu 2"));
CPoint pt = point;
ClientToScreen(&pt);
menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this);
menu.DestroyMenu();
...
}
XXX.cpp or XXX.h 에 ID 추가
enum {
ID_MENU_BASE = 20000,
ID_MENU1 = ID_MENU_BASE,
ID_MENU2,
};
XXX.cpp 에서 Message map에 ID와 처리함수 등록
BEGIN_MESSAGE_MAP(xxx, xxx)
...
ON_COMMAND(ID_MENU1, &XXX::OnMenu1)
ON_COMMAND(ID_MENU2, &XXX::OnMenu2)
END_MESSAGE_MAP()
XXX.h 에서는... 처리 함수 선언
class XXX
{
...
public:
afx_msg void OnMenu1();
afx_msg void OnMenu2();
}
XXX.cpp 에서는... 처리 함수 구현
void XXX::OnMenu1()
{
// ~~~
}
void XXX::OnMenu2()
{
// ~~~
}
'Windows' 카테고리의 다른 글
[MFC] Double buffering (0) | 2016.05.27 |
---|---|
[MFC] Draw Text (0) | 2016.05.27 |
Virtual list control (리스트 아이템 가상화?) (0) | 2016.04.21 |
Loading system icon (0) | 2016.04.20 |
MFC Control Focusing & Arraw Keys (0) | 2016.04.15 |