📄 btnmenudlg.cpp
字号:
// BtnMenuDlg.cpp : implementation file
//
#include "stdafx.h"
#include "BtnMenu.h"
#include "BtnMenuDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBtnMenuDlg dialog
CBtnMenuDlg::CBtnMenuDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBtnMenuDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBtnMenuDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CBtnMenuDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBtnMenuDlg)
DDX_Control(pDX, IDC_BUTTON2, m_btn2);
DDX_Control(pDX, IDC_BUTTON1, m_btnMenu);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBtnMenuDlg, CDialog)
//{{AFX_MSG_MAP(CBtnMenuDlg)
ON_COMMAND(ID_MENUITEM32774, OnMenuitem32774)
ON_UPDATE_COMMAND_UI(ID_MENUITEM32774, OnUpdateMenuitem32774)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_USER, On_MenuCallback)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBtnMenuDlg message handlers
BOOL CBtnMenuDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
// TODO: Add extra initialization here
//HBITMAP m_hbitmap =::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));
//m_btnMenu.SetBtnBitmap(m_hbitmap);
m_btnMenu.SetBtnBitmap(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3);
m_btnMenu.bSetMenu=TRUE;
//m_btnMenu.SetMenu(IDR_MENUBAR1,0);
//m_btnMenu.SetMenuCallback(m_hWnd,WM_USER,0);
//create menu
// CMenu menuMain;
// menuMain.CreateMenu();
//
// CMenu menuPopup;
// menuPopup.CreatePopupMenu();
// menuPopup.AppendMenu(MF_STRING,ID_FILE_EXIT,_T("E&xit"));
// menuPopup.AppendMenu(MF_POPUP,(UINT)menuPopup.Detach(),_T("&File"));
//
// menuPopup.CreatePopupMenu();
// menuPopup.AppendMenu(MF_STRING,ID_SHAPE_CIRCLE,_T("&Circle"));
// menuPopup.AppendMenu(MF_POPUP,(UINT)menuPopup.Detach(),_T("Shape"));
//
// SetMenu(&menuMain);
// //menuMain.Detach();
//
// CMenu * pMenu=menuMain.GetSubMenu(0);
// pMenu->TrackPopupMenu(TPM_RIGHTALIGN,10,10,this);
// pMenu->DestroyMenu();
return TRUE; // return TRUE unless you set the focus to a control
}
void CBtnMenuDlg::OnMenuitem32774()
{
}
void CBtnMenuDlg::OnUpdateMenuitem32774(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(TRUE);
pCmdUI->SetText(_T("Checked Succeed"));
pCmdUI->Enable(FALSE);
}
LRESULT CBtnMenuDlg::On_MenuCallback(WPARAM wParam, LPARAM lParam)
{
CMenu* pMainMenu =NULL;
HMENU hMenu=(HMENU)wParam;
if (hMenu==NULL)
{
return 0;
}
pMainMenu=pMainMenu->FromHandle(hMenu);
CCmdUI cmdUI;
for (UINT n = 0; n < pMainMenu->GetMenuItemCount(); ++n)
{
CMenu* pSubMenu = pMainMenu->GetSubMenu(n);
cmdUI.m_nIndexMax = pSubMenu->GetMenuItemCount();
for (UINT i = 0; i < cmdUI.m_nIndexMax;++i)
{
cmdUI.m_nIndex = i;
cmdUI.m_nID = pSubMenu->GetMenuItemID(i); ;
cmdUI.m_pMenu = pSubMenu;
cmdUI.DoUpdate(this, FALSE);
}
}
return 0;
} // End of ON_MenuCallback
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -