CMFCTOOL和TOOLBAR按钮 响应消息函数的传入的变量有问题不对,导致按钮无法使用怎么解决?

lixiang li 40 信誉分
2024-06-12T07:44:09.52+00:00

nCOUNT 值是0 不是索引数,导致ID_BUTTON40070 和 ID_BUTTON40010 两个方法不能正常判断索引是怎么回事,求解决

ON_COMMAND(ID_BUTTON40010, &CMainWindow::OnButton40010)

ON_COMMAND(ID_BUTTON40070, &CMainWindow::OnButton40070)

ON_UPDATE_COMMAND_UI(ID_BUTTON40070, &CMainWindow::OnUpdateButton40070)

ON_UPDATE_COMMAND_UI(ID_BUTTON40010, &CMainWindow::OnUpdateButton40010)

void CMainWindow::OnButton40010()

{

state = FALSE;

state2 = !state2;

nCOUNT = mylist.GetItemCount();

if (NextPos <= nCOUNT)

{       

    NextPos++;

    m_ToolBar.GetToolBarCtrl().EnableButton(ID_BUTTON40070, state);

    CEdit* pmyEdit = mylist.EditLabel(NextPos);

    ASSERT(pmyEdit != NULL);

}

else

{

    m_ToolBar.GetToolBarCtrl().EnableButton(ID_BUTTON40070, !state);

}



//MessageBox(L"Three123");

// TODO: 在此添加命令处理程序代码

}

void CMainWindow::OnButton40070()

{

// TODO: 在此添加命令处理程序代码

 state2 = FALSE;

 state = !state;

 

if (NextPos > 0) 

{

    m_ToolBar.GetToolBarCtrl().EnableButton(ID_BUTTON40010, state2);

    NextPos--;

}

else

{

    m_ToolBar.GetToolBarCtrl().EnableButton(ID_BUTTON40010, !state2);

}

}

void CMainWindow::OnUpdateButton40070(CCmdUI* pCmdUI)

{

if (nCOUNT <= 0|| nCOUNT==1)

{

    pCmdUI->Enable(state);

}

else

{

    pCmdUI->Enable(!state);

}

    



// TODO: 在此添加命令更新用户界面处理程序代码

}

void CMainWindow::OnUpdateButton40010(CCmdUI* pCmdUI)

{

if (nCOUNT <= 0 || nCOUNT == 1)

{

        pCmdUI->Enable(state2);

}

else

{

    pCmdUI->Enable(!state2);

}

    

// TODO: 在此添加命令更新用户界面处理程序代码

}

Visual Studio
Visual Studio
一系列 Microsoft 集成开发工具套件,用于生成适用于 Windows、Web 和移动设备的应用程序。
86 个问题
C++
C++
一种通用的高级编程语言,作为 C 编程语言的扩展而创建,除了用于低级别内存操作的功能外,还具有面向对象、泛型和功能性等特点。
126 个问题
{count} 票