#c #wxwidgets
#c #wxwidgets
Вопрос:
Мы создали приложение с использованием wxWidgets на C и используем wxToolTips для предоставления некоторой информации конечному пользователю, когда он наводит указатель мыши на что-то в приложении. однако я замечаю, что всплывающие подсказки автоматически аккуратно упаковываются в новые строки в Mac. но в Windows это выглядит как одна единственная строка, которая выглядит не очень привлекательно.
в Mac: «это помогает увеличить яркость изображения …………………….»
в win: «это помогает увеличить яркость изображения……………………….»
Кто-нибудь может мне помочь с этим? Я не хочу использовать символы новой строки и жестко кодировать всплывающую подсказку в несколько строк
Ответ №1:
В MSW есть статическая функция wxToolTip::SetMaxWidth(int width)
, которая задает ширину в пикселях. Вы должны вызвать его перед установкой wxToolTip, согласно документации.
Комментарии:
1. Спасибо, Джон, но я считаю, что функция setMaxWidth доступна только с wxWidgets 2.8.10 и выше. Я использую 2.8.2.
2. Хммм … тогда, я думаю, вам нужно будет напрямую вызвать Windows API, чтобы установить максимальную ширину. В
mswtooltip.cpp
wxWidgets 2.9.2 используетсяSendTooltipMessage(GetToolTipCtrl(), TTM_SETMAXTIPWIDTH, wxUIntToPtr(maxWidth));
, который становится похожим на сообщение::SendMessage((HWND)hwnd, msg, 0, (LPARAM)lParam)
, поэтому, если вы можете захватитьhwnd
, это кажется возможным с небольшой работой.