我想在MFC工具栏上创建一个按钮,可以按下该按钮并保持其状态,直到再次按下(如复选框),但我不想要一个勾选框。理想情况下,我喜欢在两个图标之间切换的按钮,并使用DDV来更改被按下时的布尔值。我该怎么做呢。
作为一个侧面问题,我可以用一本关于MFC的好书来做。我有MFC第二版编程Windows,但是想知道是否还有更多细节?
答案 0 :(得分:1)
使用ON_UPDATE_COMMAND_UI
设置按钮的状态。例如典型的处理程序将如下所示:
BEGIN_MESSAGE_MAP(CMyView, CView)
ON_UPDATE_COMMAND_UI(ID_MY_BUTTON, OnUpdateMyButton)
END_MESSAGE_MAP()
...
void CMyView::OnUpdateMyButton(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck( isButtonPressed() );
}
关于良好的MFC文档,我推荐专业MFC(Mike Blaszczak) - 它有点老但非常好。
答案 1 :(得分:0)
来自documentation of the CToolBar Class:
要创建复选框按钮,请为其指定样式TBBS_CHECKBOX,或在ON_UPDATE_COMMAND_UI处理程序中使用CCmdUI对象的SetCheck成员函数。
答案 2 :(得分:0)
在对话框上绘制一个单选按钮。
选择单选按钮并转到按钮属性页面。
设置“按赞”属性并设置为“真”
为同一控件添加事件处理程序并采用布尔变量。
使用API->“ CheckDlgButton(IDC_RADIO1,1);”用于根据布尔变量值设置状态。
了解更多详情。请访问下面的链接。
https://www.codeproject.com/Articles/530/A-Better-Bitmap-Button-Class