How to change a single toolbar icon at runtime?
C / C++ / MFC
2
Posts
2
Posters
0
Views
1
Watching
-
Hello, I have a toolbar with several icons in it and there is one icon that I must change at runtime. How can I manage this? I have tried someting like this, but the code crashes...
CToolBarCtrl& tb = m\_wndToolBar.GetToolBarCtrl(); int iButtonCount = tb.GetButtonCount(); CDC dcMemToolbar; CDC dcMemSrc; CBitmap SrcBmp; CBitmap NewBmp; CBitmap\* pOldSrcBmp = NULL; CDC\* pDc = GetDC(); dcMemToolbar.CreateCompatibleDC(pDc); dcMemSrc.CreateCompatibleDC(pDc); SrcBmp.LoadBitmap(IDB\_TOOLBAR); pOldSrcBmp = dcMemSrc.SelectObject(&SrcBmp); dcMemToolbar.BitBlt(0, 0, iButtonCount\*16, 16, &dcMemSrc, 0, 0, SRCCOPY); NewBmp.LoadBitmap(IDB\_INVALID\_ICON); dcMemSrc.SelectObject(&NewBmp); dcMemToolbar.BitBlt(0, 0, 16, 16, &dcMemSrc, 0, 0, SRCCOPY); dcMemSrc.SelectObject(pOldSrcBmp); m\_wndToolBar.SetBitmap(SrcBmp);
Thank you
-
Hello, I have a toolbar with several icons in it and there is one icon that I must change at runtime. How can I manage this? I have tried someting like this, but the code crashes...
CToolBarCtrl& tb = m\_wndToolBar.GetToolBarCtrl(); int iButtonCount = tb.GetButtonCount(); CDC dcMemToolbar; CDC dcMemSrc; CBitmap SrcBmp; CBitmap NewBmp; CBitmap\* pOldSrcBmp = NULL; CDC\* pDc = GetDC(); dcMemToolbar.CreateCompatibleDC(pDc); dcMemSrc.CreateCompatibleDC(pDc); SrcBmp.LoadBitmap(IDB\_TOOLBAR); pOldSrcBmp = dcMemSrc.SelectObject(&SrcBmp); dcMemToolbar.BitBlt(0, 0, iButtonCount\*16, 16, &dcMemSrc, 0, 0, SRCCOPY); NewBmp.LoadBitmap(IDB\_INVALID\_ICON); dcMemSrc.SelectObject(&NewBmp); dcMemToolbar.BitBlt(0, 0, 16, 16, &dcMemSrc, 0, 0, SRCCOPY); dcMemSrc.SelectObject(pOldSrcBmp); m\_wndToolBar.SetBitmap(SrcBmp);
Thank you
Better to handle using CImageList it will be easy and convenient. Please try in this way.
-Sarath. "Great hopes make everything great possible" - Benjamin Franklin
My blog - Sharing My Thoughts, An Article - Understanding Statepattern