BCG菜单button的简单使用
一,新建一个BCGprojectCBCGPMenuButton,基于对话框。
二。添加一个button,并关联一个CButton类型的变量m_btn1。然后手动将类型改CBCGPMenuButton成。
三,为这个button添加响应事件。
void CCBCGPMenuButtonDlg::OnButton1()
{
AfxMessageBox("士农学会。");
}
四,F5执行。鼠标单击Btn1,看看结果。结果纹丝不动。
五,在CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中将m_bDefaultClick设置为TRUE。
m_btn1.m_bDefaultClick = TRUE;
六。在添加一个button并关联CBCGPMenuButton类型的变量m_btn2。添加响应事件。
七。在CCBCGPMenuButtonDlg::OnInitDialog()中为m_btn2设置菜单。
static CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING,1,"士");
menu.AppendMenu(MF_STRING,2,"农");
menu.AppendMenu(MF_STRING,3,"工");
menu.AppendMenu(MF_STRING,4,"商");
m_btn2.m_hMenu = menu;
八,点击btn2不论什么地方,都会弹出菜单,例如以下图所看到的。
九,btn2的响应函数例如以下:
void CCBCGPMenuButtonDlg::OnButton2()
{
if( 1 == m_btn2.m_nMenuResult )
AfxMessageBox("士");
else if( 2 == m_btn2.m_nMenuResult )
AfxMessageBox("农");
else if( 3 == m_btn2.m_nMenuResult )
AfxMessageBox("工");
else if( 4 == m_btn2.m_nMenuResult )
AfxMessageBox("商");
if( m_btn2.m_bDefaultClick && 0 == m_btn2.m_nMenuResult )
AfxMessageBox("选择阶层");
}
十,在添加一个button并关联CBCGPMenuButton类型的变量m_btn3。CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中将m_btn3的m_bStayPressed 设置成FALSE。这样按下的时候button外表不会发生变化。
m_btn3.m_bStayPressed = FALSE;
十一,在CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中
m_btn2.m_bOSMenu = FALSE;
菜单的界面有变化。