Print Page | Close Window

Dynamic Toolbar icon

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Command Bars
Forum Description: Topics Related to Codejock Command Bars
URL: http://forum.codejock.com/forum_posts.asp?TID=14957
Printed Date: 05 February 2025 at 12:46pm
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: Dynamic Toolbar icon
Posted By: AndyKir
Subject: Dynamic Toolbar icon
Date Posted: 12 August 2009 at 2:47pm
Hi,

how can I dynamically change one icon on the toolbar.

I load the toolbar:
CXTPToolBar* pToolBarFile = (CXTPToolBar*) pCommandBars->Add(_T("File"), xtpBarTop);
if (!pToolBarFile || !pToolBarFile->LoadToolBar(IDR_TOOLBAR_DVD))...

then I have a code to update it:

void CMainFrame::OnUpdateSwitchToCDDVD(CCmdUI *pCmdUI)
{
     bool bCD = theApp.IsMediaCD();

    pCmdUI->Enable(!IsInProcess());
    pCmdUI->SetCheck(!bCD);

#ifdef USE_CODEJOCK_MFC_EXTENSION
    CXTPControl* pControl = GetCommandBars()->GetAt(1)->GetControl(4);
    pControl->SetIconId(bCD ? XXXXX : YYYYY);
    pControl->SetCaption(bCD ? _T("CD") : _T("DVD"));
#endif

}

What "Icon's identifier to be set." in function CXTPControl::SetIconId means?
And my question what to use as "XXXXX : YYYYY"?

I tried:
    pCommandBars->GetImageManager()->SetIcon(IDB_CD, ID_SWITCH_CD_DVD, xtpImageNormal);
    pCommandBars->GetImageManager()->SetIcon(IDB_DVD, ID_SWITCH_CD_DVD, xtpImageChecked);

and
    pCommandBars->GetImageManager()->SetIcon(IDB_CD, ID_SWITCH_CD_DVD);
    pCommandBars->GetImageManager()->SetIcon(IDB_DVD, ID_SWITCH_DVD_CD);

no luck.
Any suggestions?


Thanks!







Replies:
Posted By: mgampi
Date Posted: 12 August 2009 at 3:55pm
Hi;

I do it this way:

void CMyApp::OnUpdateMyCommand(CCmdUI* pCmdUI)
{
    CXTPControl* pPopup = CXTPControl::FromUI(pCmdUI);
    if (pPopup)
    {
        pPopup->SetIconId(MyNewId);
    }
}


-------------
Martin

Product: Xtreme Toolkit v 22.1.0, new Projects v 24.0.0
Platform: Windows 10 v 22H2 (64bit)
Language: VC++ 2022


Posted By: Oleg
Date Posted: 13 August 2009 at 1:49am
Yes, use FromUI and load using
 
pCommandBars->GetImageManager()->SetIcon(ID_SWITCH_CD_DVD, ID_SWITCH_CD_DVD);  where ID_SWITCH_CD_DVD _Icon_ resource.


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: AndyKir
Date Posted: 13 August 2009 at 11:27am
Олег,

can you please take a look at the example I tried to build (I used your new project template and cleaned up it)
What am I doing wrong?

And one more question - how do I remove icon from a toolbar button (so it would have an icon in one state and no icon in another)?

Disclosure: I do have one year support.
Thanks!

uploads/20090813_112231_CJtest.zip - uploads/20090813_112231_CJtest.zip



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net