MFC要实现下拉框的选项要用到MFC MenuButton控件和菜单资源。首先在对话框中添加菜单按钮控制并未控制绑定一个变量,再在资源中添加菜单资源。通过代码将控件与菜单资源绑定定,具体如下:
![这里写图片描述(https://img-blog.csdn.net/20180915111719976?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1l1ZXJfQXJ5YQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/ dissolve / 70)
![这里写图片描述(https://img-blog.csdn.net/20180915111728763?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1l1ZXJfQXJ5YQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve / 70)
![这里写图片描述(https://img-blog.csdn.net/20180915111737345?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1l1ZXJfQXJ5YQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ 70)
这里写代码片BOOL测试:: OnInitDialog()
{
CDialogEx ::的OnInitDialog();
// TODO:在此添加额外的初始化
//////////////////关联
CMenu * pMenu =new CMenu;
pMenu-> LoadMenu(IDR_MENU2); //载入菜单资源
m_menu_hk.m_hMenu = pMenu-> GetSubMenu(0) - > GetSafeHmenu();
//m_menu_hk为menubutton控件变量
返回TRUE; //除非将焦点设置为控件,否则返回TRUE
//异常:OCX属性页应返回FALSE
}
void test :: OnBnClickedMenuDh()//导航按钮
{
// TODO:在此添加控件通知处理程序代码
if(m_menu_dh.m_nMenuResult == ID_DH1)
//下拉框一的ID
{
AfxMessageBox的(_T( “下拉框一”));
}
否则if(m_menu_dh.m_nMenuResult == ID_DH2)
//下拉框二的ID
{
AfxMessageBox的(_T( “下拉框二”));
}
return;
}
使用多个menubutton控件并添加菜单时在OnInitDialog()
中添加:
m_menu_mq.m_hMenu = pMenu->GetSubMenu(1)->GetSafeHmenu();
m_menu_mq是另一个menubutton控件的变量,只需改动GetSubMenu(1)即可同时使用多个menubutton按钮。