J'ai un problème qui commence a me gaver...
Je suis en train de programmer une toolbar pour IE (sous Vc++ 6) et j'ai un soucis pour rajouter des boutons:
voici mon code:
TBBUTTON tbb[3];
// buttons with images and text
SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, (LPARAM)TBSTYLE_EX_MIXEDBUTTONS);
SendMessage(m_hWnd, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
SendMessage(m_hWnd, TB_SETMAXTEXTROWS, 200, 0L);
TCHAR* pCaption1 = _T("123");
TCHAR* pCaption2 = _T("456");
TCHAR* pCaption3 = _T("789");
int iIndex1 = ::SendMessage(m_hWnd, TB_ADDSTRING, 0,(LPARAM)pCaption1);
int iIndex2 = ::SendMessage(m_hWnd, TB_ADDSTRING, 0,(LPARAM)pCaption2);
int iIndex3 = ::SendMessage(m_hWnd, TB_ADDSTRING, 0,(LPARAM)pCaption3);
Ca fonctionne sauf si dans pCaption1, je met "12345" au lieu de "123", mon troisieme boutons disparait, mais le deuxieme reste.
Si je met "1234567890", là même le deuxieme bouton disparait!!
Moi ya pas de pb en créant comme ca:
m_hWnd = CreateWindowEx(0, TOOLBARCLASSNAME, 0, WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, hWnd, NULL, m_hInstance, NULL);
PS: Si tu utilises ::SendMessage pour modifier ta ToolBar, ca ne sert a rien d'utiliser les MFC (la réciproque est fausse).
Le :: c'est toi qui l'a mis, c'est a moi de te demander pourquoi...
Ca sert a dire que tu cherches la fonction dans l'espace de noms global. Comme certaines classes MFC redéfinissent SendMessage, on est obligé de mettre ces :: devant pour appeler la "vraie" fonctioon SendMessage.