Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Toolkit Pro
  New Posts New Posts RSS Feed - ribbon group withmutually exclusive buttons?
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

ribbon group withmutually exclusive buttons?

 Post Reply Post Reply
Author
Message
andujar View Drop Down
Newbie
Newbie


Joined: 02 August 2006
Location: United States
Status: Offline
Points: 7
Post Options Post Options   Thanks (0) Thanks(0)   Quote andujar Quote  Post ReplyReply Direct Link To This Post Topic: ribbon group withmutually exclusive buttons?
    Posted: 02 August 2006 at 8:01pm

We are developing an application with a ribbon and have multiple control buttons in a group and would like the behavior of the buttons in this group to be mutually exclusive.

So, we are trying to create a scenario where:
 One button will always be checked
 Clicking on one button unchecks the currently checked button and checks the button just clicked
 And therefore, no two buttons can be checked at the same time
 
Here is how we create the group:

 CXTPRibbonGroup* pDirectoriesGroup = pTabMain->AddGroup(ID_GROUP_DIRECTORIES);
 pDirectoriesGroup->Add(xtpControlButton, ID_Directories_C_DRIVE);
 pDirectoriesGroup->Add(xtpControlButton, ID_Directories_D_DRIVE);
 pDirectoriesGroup->Add(xtpControlButton, ID_Directories_E_DRIVE);

We also have message handlers to initiate actions on button push and to check/uncheck each button individually (as in ribbonsample):

 ON_UPDATE_COMMAND_UI_RANGE(ID_Directories_C_DRIVE, ID_Directories_E_DRIVE, OnUpdateDirectories)
 ON_COMMAND_RANGE(ID_Directories_D_DRIVE, ID_Directories_E_DRIVE,OnDirectories)

Any thoughts on the code we can replace ours with to create the behavior above?

Thanks

Back to Top
Oleg View Drop Down
Senior Member
Senior Member


Joined: 21 May 2003
Location: United States
Status: Offline
Points: 11234
Post Options Post Options   Thanks (0) Thanks(0)   Quote Oleg Quote  Post ReplyReply Direct Link To This Post Posted: 02 August 2006 at 9:25pm
Hello,
 
Something like this:
 
 
ON_UPDATE_COMMAND_UI_RANGE(ID_Directories_C_DRIVE, ID_Directories_E_DRIVE, OnUpdateDirectories)
 ON_COMMAND_RANGE(ID_Directories_D_DRIVE, ID_Directories_E_DRIVE,OnDirectories)
 
CMainFrame::CMainFrame()
{
 m_nDirectory = ID_Directories_C_DRIVE;
}

void CMainFrame::OnDirectories(UINT nID)
{
 m_nDirectory = nID;
}
 
void CMDIChildWndEx::OnUpdateDirectories(CCmdUI* pCmdUI)
{
 pCmdUI->SetCheck(pCmdUI->m_nID == m_nDirectory ? 1 : 0);
}
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS
Back to Top
andujar View Drop Down
Newbie
Newbie


Joined: 02 August 2006
Location: United States
Status: Offline
Points: 7
Post Options Post Options   Thanks (0) Thanks(0)   Quote andujar Quote  Post ReplyReply Direct Link To This Post Posted: 02 August 2006 at 9:46pm
Perfect.  Thank you very much, Oleg.
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

This page was generated in 0.047 seconds.