Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > ToolTip в 2008 студии


Автор: Andrey44 10.11.2008, 09:34
Никто не сталкивался с проблемой создания подсказок в 2008 студии?
Вобщем у меня API приложение без МФЦ.
Пытаюсь добавить подсказку, но SendMessage(hWndToolTip, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) lpti) возвращает все время false.
Кто-то сталкивался с этим?

Автор: BorisVorontsov 10.11.2008, 22:37
Покажи, как ты проинициализировал TOOLINFO.

Автор: Andrey44 11.11.2008, 08:26
BorisVorontsov, пожалуйста, но в 2003 и 2005 студиях это работает.

Код

ZeroMemory(&ti, sizeof(TOOLINFO));
    ti.cbSize   = sizeof(TOOLINFO);
    ti.hwnd     = hWndCtrl;
    ti.uFlags   = TTF_SUBCLASS | TTF_CENTERTIP;
    ti.uId        = nID;
    ti.hinst      = hInstance;
    ti.lpszText = (LPWSTR)szText;
    GetClientRect(hWndCtrl, &ti.rect);
    SendMessage(hToolTip, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti);

Автор: BorisVorontsov 11.11.2008, 13:26
Посмотри, что возвращает sizeof(TOOLINFO) в 2005 и в 2008-й. Может, в этом дело.

Автор: Andrey44 12.11.2008, 11:28
2003 - sizeof(TOOLINFO) = 44
2005 - sizeof(TOOLINFO) = 48
2008 - sizeof(TOOLINFO) = 48

Автор: 586 12.11.2008, 18:02
Цитата(Andrey44 @  11.11.2008,  08:26 Найти цитируемый пост)
ti.lpszText = (LPWSTR)szText;

Странный код... Покажи определение переменной szText, и то как с ней работаешь.


Автор: Andrey44 13.11.2008, 08:45
Код

LPCTSTR szText = _T("Hello, people!");


Все компилится, в дебагере смотрю заполнение полей структуры - все заполнено.
GetLastError() - возвращает ноль.
Но тултипа нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)