Здравствуйте, Hayabusa, Вы писали:
H>Подскажите плз, как поменять тултип у тулбара?
H>Приложение ATL...
H>Создается тулбар примерно так:
H>const HWND hWnd = CreateSimpleToolBarCtrl(m_hWnd, nID, FALSE, ATL_SIMPLE_TOOLBAR_PANE_STYLE);
CFrameWindowImpl перехватывает обработчик тултипа (в сырцах можно мосмотреть как). Посему нужно делать это самому:
в карту сообщений перед CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>) вставляем
NOTIFY_CODE_HANDLER(TTN_GETDISPINFO, ttnGetDispInfo)
обработчик примерно такой:
// code from CFrameWindowImplBase
LRESULT ttnGetDispInfo(int idCtrl, LPNMHDR pnmh, BOOL& /*bHandled*/)
{
NMTTDISPINFO *pDispInfo = (NMTTDISPINFO*)pnmh;
pDispInfo->szText[0] = 0;
if((idCtrl != 0) && !(pDispInfo->uFlags & TTF_IDISHWND))
{
CComBSTR bstrOut;
g_Lang.Translate(idCtrl, &bstrOut);
_tcscpy(pDispInfo->szText, bstrOut);
pDispInfo->uFlags |= TTF_DI_SETITEM;
}
return 0;
}
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Здравствуйте, BuHHunyx, Вы писали:
BHH>CFrameWindowImpl перехватывает обработчик тултипа (в сырцах можно мосмотреть как). Посему нужно делать это самому:
BHH>в карту сообщений перед CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>) вставляем
BHH>BHH>NOTIFY_CODE_HANDLER(TTN_GETDISPINFO, ttnGetDispInfo)
BHH>
BHH>обработчик примерно такой:
BHH...
Спасибочки!!! Работает!