vs2015/mfc 동적 생성 메뉴

1918 단어
단계 1.대화상자 기반 프로그램을 만듭니다.
2. 대화상자의 헤더 파일에 CMenu 클래스 개체 m 선언하기Menu;
3. 리소스 헤더 파일(Resource.h)에서 명령 ID를 정의합니다.
#define ID_MENUCAT            1001      
#define ID_MENUDOG            1002 
#define ID_MENUMONKEY         1003

4. 다음과 같은 코드로 대화 상자의 소스 파일의 OnInItDialog 메서드에 메뉴를 만듭니다.
        m_Menu.CreateMenu();            //      
	CMenu m_PopupMenu;              //       
	m_PopupMenu.CreatePopupMenu();  //        
	m_Menu.AppendMenuW(MF_POPUP, (UINT)m_PopupMenu.m_hMenu, _T("  "));//    
	m_PopupMenu.AppendMenuW(MF_POPUP, ID_MENUCAT, _T(" "));            //     
	m_PopupMenu.AppendMenuW(MF_POPUP, ID_MENUDOG, _T(" "));            //     
	m_PopupMenu.AppendMenuW(MF_POPUP, ID_MENUMONKEY, _T(" "));         //     
	m_PopupMenu.AppendMenuW(MF_POPUP, -1, _T("  "));                  //      
	m_PopupMenu.Detach();                                               //      
	SetMenu(&m_Menu);                                                   //          
	m_Menus.LoadMenuW(IDR_MENU1);                                       //      
5.                    :
        afx_msg void OnMenuCat();
	afx_msg void OnMenuDog();
	afx_msg void OnMenuMonkey();
 
  

6. , ID :

	ON_COMMAND(ID_MENUCAT,OnMenuCat)
	ON_COMMAND(ID_MENUDOG,OnMenuDog)
	ON_COMMAND(ID_MENUMONKEY,OnMenuMonkey)

7. 대화 상자 소스 파일에 메시지 처리 함수의 구현 코드를 추가합니다.
void CMenuDlg::OnMenuCat()
{
	MessageBox(_T("      !"));
}
void CMenuDlg::OnMenuDog()
{
	MessageBox(_T("      !"));
}
void CMenuDlg::OnMenuMonkey()
{
	MessageBox(_T("      !"));
}

좋은 웹페이지 즐겨찾기