Codejock Forums Homepage
Forum Home Forum Home > Codejock Products > Visual C++ MFC > Command Bars
  New Posts New Posts RSS Feed - Dynamic Toolbar icon
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Dynamic Toolbar icon

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


Joined: 07 August 2009
Location: United States
Status: Offline
Points: 4
Post Options Post Options   Thanks (0) Thanks(0)   Quote AndyKir Quote  Post ReplyReply Direct Link To This Post Topic: Dynamic Toolbar icon
    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!




Back to Top
mgampi View Drop Down
Senior Member
Senior Member
Avatar

Joined: 14 July 2003
Status: Offline
Points: 1198
Post Options Post Options   Thanks (0) Thanks(0)   Quote mgampi Quote  Post ReplyReply Direct Link To This Post 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 19.0.0, new Projects v 19.1.0
Platform: Windows 10 v 1909 (64bit)
Language: VC++ 2017
Back to Top
Oleg View Drop Down
Admin Group
Admin Group


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: 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
Back to Top
AndyKir View Drop Down
Newbie
Newbie


Joined: 07 August 2009
Location: United States
Status: Offline
Points: 4
Post Options Post Options   Thanks (0) Thanks(0)   Quote AndyKir Quote  Post ReplyReply Direct Link To This Post 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
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.141 seconds.