MFC控件(7):Split Button

来源:互联网 发布:苹果手机mac怎么修改 编辑:程序博客网 时间:2024/06/03 20:04

VS2008中可以看到MFC有一个叫Split Button的控件,要想看它的效果,瞧下QQ那聊天窗口的"发送", "消息记录"这两个按钮就知道了.实际上就是还有点像Combo Box了.不过它的实现应该是button加menu.所以它的消息处理可以分开成button的处理和menu的处理


往dialog上拖一个split button后,再给它绑定一个变量.

CSplitButton m_sbSend;

DDX_Control(pDX, IDC_SPLIT1, m_sbSend);


因为说了split button实际上是button跟menu的组合.所以你得整个menu先.不是什么特殊的菜单,就是主页面常用的那种菜单.

m_split.SetDropDownMenu(IDR_MENU1,0);  //添加split button的下拉菜单.第一个参数就是菜单的资源ID,第二个参数就是子项索引,就是菜单根项从左之右数过去了.我们这里只能用到它的一个子菜单.


消息处理

split button中按钮部分的消息处理跟一般按钮一样.

ON_BN_CLICKED(IDC_SPLIT1, OnBnClickedSplit1)


void CMFCControlDlg::OnBnClickedSplit1()

{
AfxMessageBox(_T("click split button"));
}


下拉菜单 的处理

split button中下拉菜单的处理也跟一般菜单类似

ON_COMMAND(ID_Split_Menu1, SendMsg)


void CMFCControlDlg::SendMsg()
{
AfxMessageBox(_T("Click dropdown menu of split button"));
}

原创粉丝点击