现在的位置: 首页 > 综合 > 正文

BCG菜单按钮的简单使用

2018年07月11日 ⁄ 综合 ⁄ 共 1214字 ⁄ 字号 评论关闭

一,新建一个BCG工程CBCGPMenuButton,基于对话框。

二,增加一个按钮,并关联一个CButton类型的变量m_btn1,然后手动将类型改CBCGPMenuButton成。

三,为这个按钮增加响应事件。

void CCBCGPMenuButtonDlg::OnButton1() 

{

AfxMessageBox("士农学会!");

}

四,F5运行,鼠标单击Btn1,看看结果。结果纹丝不动。

五,在CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中将m_bDefaultClick设置为TRUE。

m_btn1.m_bDefaultClick = TRUE;

六,在增加一个按钮并关联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("选择阶层");

}

十,在增加一个按钮并关联CBCGPMenuButton类型的变量m_btn3CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中将m_btn3m_bStayPressed 设置成FALSE。这样按下的时候按钮外表不会发生变化。

m_btn3.m_bStayPressed = FALSE;

十一,在CCBCGPMenuButtonDlg::CCBCGPMenuButtonDlg中

m_btn2.m_bOSMenu = FALSE;

菜单的界面有变化。

 
源码下载:

抱歉!评论已关闭.