Microsoft KB Archive/115306

= HOWTO: How to Get the Current State of a Button in a CToolbar =

Article ID: 115306

Article Last Modified on 11/21/2006

-

APPLIES TO

 Microsoft Foundation Class Library 4.2, when used with:  Microsoft Visual C++ 1.0 Professional Edition

 Microsoft Visual C++ 1.5 Professional Edition

 Microsoft Visual C++ 1.51

 Microsoft Visual C++ 1.52 Professional Edition</li></ul>

 Microsoft Visual C++ 2.0 Professional Edition</li></ul>

 Microsoft Visual C++ 2.1</li></ul>

 Microsoft Visual C++ 4.0 Standard Edition</li></ul> </li></ul>

-

<div class="notice_section">

This article was previously published under Q115306

<div class="summary_section">

SUMMARY
Although the Microsoft Foundation Classes (MFC) offer a useful and easy method of keeping the state of a menu command and/or toolbar button in a CControlBar tied together, there is no easy means of finding out the command's or button's current state.

<div class="moreinformation_section">

MORE INFORMATION
To find the current state of a menu command or toolbar button in a CControlBar-derived class, use the following piece of code: UINT iButtonID; UINT iButtonStyle; int iButtonImage;

// If the Toolbar is not based upon the default "AFX_IDW_TOOLBAR" // constant, then replace its use with the valid Toolbar constant.

// If the following line is used from the Frame Window remove //"GetParentFrame->": CToolBar* pBar = (CToolBar*)GetParentFrame->GetDescendantWindow(AFX_IDW_TOOLBAR);

// If this code sample is called from an AppWizard generated, // Frame Window member function in Visual C++ 4.0, replace the above // statement with the following. Recall that the CMDIFrameWnd-derived // Frame Window generated by AppWizard has a CToolBar m_wndToolBar // member. CToolBar* pBar = &m_wndToolBar;

if (pBar != NULL) {

// Use the relevant Button ID for the following line: int iButtonIndex = pBar->CommandToIndex(ID_MY_BUTTON);

pBar->GetButtonInfo(iButtonIndex, iButtonID, iButtonStyle,     iButtonImage);

// The following code checks for all possible states. // In practice, check only for those states that you need.

if (iButtonStyle & TBBS_PRESSED) // Button Down else if (iButtonStyle & (TBBS_CHECKED & TBBS_DISABLED)) // Button Down & Unavailable else if (iButtonStyle & TBBS_DISABLED) // Button Disabled else if (iButtonStyle & TBBS_INDETERMINATE) // Button State Indeterminate else if (iButtonStyle & TBBS_CHECKED) // Button Checked else // Button Up & Enabled

}

Additional query words: 1.00 1.50 2.00 2.10 2.50 2.51 2.52 3.00 3.10 4.00 kbinf kbVC1500

Keywords: kbhowto kbtoolbar kbuidesign KB115306

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.