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_btn3CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中将m_btn3m_bStayPressed 设置成FALSE。这样按下的时候button外表不会发生变化。

m_btn3.m_bStayPressed = FALSE;

十一,在CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中

m_btn2.m_bOSMenu = FALSE;

菜单的界面有变化。

 
源代码下载:
posted @ 2017-05-08 15:22  lytwajue  阅读(1072)  评论(0编辑  收藏  举报