Как поменять тултип у тулбара?
От: Hayabusa Россия  
Дата: 14.06.05 08:08
Оценка:
Подскажите плз, как поменять тултип у тулбара?
Приложение ATL...

Создается тулбар примерно так:
const HWND hWnd = CreateSimpleToolBarCtrl(m_hWnd, nID, FALSE, ATL_SIMPLE_TOOLBAR_PANE_STYLE);
Re: Как поменять тултип у тулбара?
От: BuHHunyx Беларусь  
Дата: 14.06.05 10:17
Оценка: 2 (1)
Здравствуйте, 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>>
Re[2]: Как поменять тултип у тулбара?
От: Hayabusa Россия  
Дата: 14.06.05 11:16
Оценка:
Здравствуйте, BuHHunyx, Вы писали:


BHH>CFrameWindowImpl перехватывает обработчик тултипа (в сырцах можно мосмотреть как). Посему нужно делать это самому:

BHH>в карту сообщений перед CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>) вставляем
BHH>
BHH>NOTIFY_CODE_HANDLER(TTN_GETDISPINFO, ttnGetDispInfo)
BHH>

BHH>обработчик примерно такой:
BHH...

Спасибочки!!! Работает!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.