Buttons auf Toolbar lassen sich nicht aktivieren
-
Ich habe hier eine Klasse die sich von CDialogBar ableitet und als Toolbar eingebunden sind. Auf dieser finden sich ein paar normale buttons, ein paar checkboxen und comboboxen. Das spannende ist, dass die CButtons alle deaktiviert sind und sich auch nicht enablen lassen, die Check- und comboboxen sind von Huias aus aktiv. Hat einer eine Idee woran das liegen könnte bzw. was man dagegen machen kann?
-
Versuche mal damit:
class CDatenBar : public CToolBarCtrl
{
// Konstruktion
public:
CDatenBar();private:
int m_nButtonCount;
TBBUTTON *m_pTBButtons;....
}BOOL CDatenBar::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID )
{
BOOL bRet = CToolBarCtrl::Create(dwStyle, rect, pParentWnd, nID);VERIFY(AddBitmap(m_nButtonCount,IDR_DATENBAR) != -1);
for (int nIndex = 0; nIndex < m_nButtonCount; ++nIndex)
{
m_pTBButtons[nIndex].fsState = TBSTATE_ENABLED; //enabled!
m_pTBButtons[nIndex].fsStyle = TBSTYLE_BUTTON;
m_pTBButtons[nIndex].dwData = 0;
m_pTBButtons[nIndex].iString = 0;
m_pTBButtons[nIndex].iBitmap = nIndex;
m_pTBButtons[nIndex].idCommand = nIndex + ID_FIRST_BUTTON;}
TBBUTTON sepButton;
sepButton.idCommand = 0;
sepButton.fsStyle = TBSTYLE_SEP;
sepButton.fsState = TBSTATE_ENABLED;
sepButton.iString = 0;
sepButton.iBitmap = 0;
sepButton.dwData = 0;for (nIndex = 0; nIndex < m_nButtonCount; ++nIndex)
{
VERIFY(AddButtons(1,&m_pTBButtons[nIndex]));// Separator setzen (nur ein Beispiel)
if (nIndex == 3 || nIndex == 5 || nIndex == 6 )
{
VERIFY(AddButtons(1,&sepButton));
}}
return bRet;
}
-
Nein, ich brauche leider eine CDialogBar - aber ich habe es herausgefunden, für die Buttons muss der enable-State in einer UpdateUI-Funktion gesetzt werden.
-
in dem MFC sind menue elemente sowie toolbar elemente immer erst aktiv sobald man ihnen leben einhauchte
dh, gib den button (oder menueeintrag) eine funktion, schon wird der aktiv