我想在 MFC 工具栏上制作一个可以按下的按钮并保持其状态直到再次按下(如复选框),但我不想要一个复选框。理想情况下,我想要一个在两个图标之间切换的按钮,并使用 DDV 在按下时更改布尔值。我该怎么办。
作为一个附带问题,我真的可以用一本关于 MFC 的好书来做。我有 Programming Windows with MFC 2nd edition,但想知道是否有更详细的内容?
用于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 文档,我推荐 Professional MFC (Mike Blaszczak) - 它有点旧但非常好。
要创建复选框按钮,请为其指定样式 TBBS_CHECKBOX 或在 ON_UPDATE_COMMAND_UI 处理程序中使用 CCmdUI 对象的 SetCheck 成员函数。
在对话框上绘制一个单选按钮。
选择单选按钮并转到按钮属性页面。
设置 Push Like 属性并设置为“True”
为同一控件添加事件处理程序并获取布尔变量。
使用 API -> "CheckDlgButton(IDC_RADIO1, 1);" 根据布尔变量值设置状态。
更多细节。访问以下链接。
https://www.codeproject.com/Articles/530/A-Better-Bitmap-Button-Class