1

我想在 MFC 工具栏上制作一个可以按下的按钮并保持其状态直到再次按下(如复选框),但我不想要一个复选框。理想情况下,我想要一个在两个图标之间切换的按钮,并使用 DDV 在按下时更改布尔值。我该怎么办。

作为一个附带问题,我真的可以用一本关于 MFC 的好书来做。我有 Programming Windows with MFC 2nd edition,但想知道是否有更详细的内容?

4

3 回答 3

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 文档,我推荐 Professional MFC (Mike Blaszczak) - 它有点旧但非常好。

于 2012-12-19T16:22:05.803 回答
0

CToolBar 类的文档中

要创建复选框按钮,请为其指定样式 TBBS_CHECKBOX 或在 ON_UPDATE_COMMAND_UI 处理程序中使用 CCmdUI 对象的 SetCheck 成员函数。

于 2012-12-19T16:20:44.283 回答
0

在对话框上绘制一个单选按钮。

选择单选按钮并转到按钮属性页面。

设置 Push Like 属性并设置为“True”

为同一控件添加事件处理程序并获取布尔变量。

使用 API -> "CheckDlgButton(IDC_RADIO1, 1);" 根据布尔变量值设置状态。

更多细节。访问以下链接。

https://www.codeproject.com/Articles/530/A-Better-Bitmap-Button-Class

于 2020-10-08T12:02:50.913 回答