1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
//----------------------------------------------------------------
int CChildFrame::UpdateButton(int nIDBt)
{
struct CUSTOMBT custom;
if(!m_mapCustomBt.Lookup(nIDBt,custom)) return -1;
int rnImage;
if(GetButtonImage(nIDBt,rnImage))
{
rnImage=(rnImage==custom.nIndiceNew?custom.nIndiceOrg:custom.nIndiceNew);
SetButtonImage(nIDBt,rnImage);
// met le bouton enfoncé dans le cas du deuxieme etat.
SetButtonPressed(nIDBt,rnImage==custom.nIndiceNew);
return (rnImage==custom.nIndiceNew);
}
return -1;
}
//----------------------------------------------------------------
void CChildFrame::SetButton(int nIDBt,UINT nBitmapID,const char *szNextText)
{
struct CUSTOMBT custom;
int nNumButtons=m_wndToolBar.GetToolBarCtrl().GetImageList()->GetImageCount();
custom.nIndiceNew=AddBitmapToolBar(nNumButtons,nBitmapID);
custom.strNewTxt=szNextText;
GetButtonImage(nIDBt,custom.nIndiceOrg);
m_mapCustomBt.SetAt(nIDBt,custom);
}
//----------------------------------------------------------------
BOOL CChildFrame::SetButtonImage(int nIDBt,int nImage)
{
TBBUTTONINFO tbbi;
tbbi.dwMask = TBIF_IMAGE;
tbbi.cbSize = sizeof tbbi;
BOOL b=m_wndToolBar.GetToolBarCtrl().GetButtonInfo(nIDBt, &tbbi );
if(b)
{
tbbi.iImage=nImage;
b=m_wndToolBar.GetToolBarCtrl().SetButtonInfo(nIDBt,&tbbi);
m_wndToolBar.GetToolBarCtrl().RedrawWindow();
}
return (b && b!=-1);
}
//----------------------------------------------------------------
BOOL CChildFrame::GetButtonImage(int nIDBt,int &rnImage)
{
char sztext[256];
TBBUTTONINFO tbbi;
tbbi.dwMask = TBIF_IMAGE;
tbbi.cbSize = sizeof tbbi;
BOOL b= m_wndToolBar.GetToolBarCtrl().GetButtonInfo(nIDBt, &tbbi );
rnImage=tbbi.iImage;
return (b && b!=-1);
}
//----------------------------------------------------------------
BOOL CChildFrame::AddBitmapToolBar(int nNumButtons,UINT nBitmapID )
{
return m_wndToolBar.GetToolBarCtrl().AddBitmap(nNumButtons,nBitmapID);
}
//----------------------------------------------------------------
int CChildFrame::GetButtonCount()
{
// nombre de boutons dans la toolbar separateur compris.
int nct=m_wndToolBar.GetToolBarCtrl().GetButtonCount();
int nCount=0;
TBBUTTON tb;
for(int i=0;i<nct;i++)
{
m_wndToolBar.GetToolBarCtrl().GetButton(i,&tb);
// si l'indice commande du bouton est valide ok on a bien un bouton.
if(tb.idCommand) nCount++;
}
return nCount;
}
//----------------------------------------------------------------
BOOL CChildFrame::SetButtonPressed(int nIDBt,bool bPressed/*=true*/)
{
int nState=TBSTATE_ENABLED ;
if(bPressed) nState|=TBSTATE_PRESSED;
return m_wndToolBar.GetToolBarCtrl().SetState(nIDBt,nState);
} |
Partager