複数のウィンドウで黄色のツールチップを作成することはできますか?Windowsの黄色いツールチップの複数行?
私は\n
と試みたが、それは働いていません。
EDIT:
これは私のコードでは、私が持っている機能です。私はMSDNの指示に従いましたが、それを動作させることができませんでした(コメントを見てください:// Multiline tooltip
)。
void CreateToolTipForRect(HWND hwndParent)
{
if (!bCanCreateToolTips)
return;
// Get list of areas we want tooltips on
NSUI::TButton* tbt;
tbt = gUserInterface->buttonList;
HWND hwndTT;
// Array to store all tooltip texts
static char string[100][ RM_SCROLLTEXT_MAXLEN + 2 ];
// Go through the list
while (tbt != NULL)
{
// Check id there is a tooltip text defined for this area
int sid = GetResourceIdFromButtonId(tbt->id);
if (sid == -1)
{
tbt = tbt->next;
continue;
}
if (!ttwnd[tbt->id])
{
// Create a ToolTip.
hwndTT = CreateWindowEx(WS_EX_TOPMOST,
TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hwndParent, NULL, ((QunicApp *)CQMainGetApp())->CQWinApp_GetHInst(),NULL);
ttwnd[tbt->id] = hwndTT;
SetWindowPos(hwndTT, HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
// Get tooltip from resources
int res = LoadString(((QunicApp *)CQMainGetApp())->CQWinApp_GetHInst(), sid, string[tbt->id], RM_SCROLLTEXT_MAXLEN);
}
// Set up "tool" information.
TOOLINFO ti = { 0 };
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = hwndParent;
ti.hinst = ((QunicApp *)CQMainGetApp())->CQWinApp_GetHInst();
ti.lpszText = string[tbt->id];
// Set area
ti.rect.left = tbt->tx;
ti.rect.right = tbt->bx;
ti.rect.top = tbt->ty;
ti.rect.bottom = tbt->by;
// Associate the ToolTip with the "tool" window.
SendMessage(ttwnd[tbt->id], TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
// Multiline tooltip - Ilija tried with this
/*LPNMTTDISPINFO pInfo = (LPNMTTDISPINFO)tbt;
SendMessage(pInfo->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 150);*/
tbt = tbt->next;
}
// Extra one, area or button is not known yet
// Create a ToolTip.
hwndTT = CreateWindowEx(WS_EX_TOPMOST,
TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hwndParent, NULL, ((QunicApp *)CQMainGetApp())->CQWinApp_GetHInst(),NULL);
SetWindowPos(hwndTT, HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
// Set up "tool" information.
TOOLINFO ti = { 0 };
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = hwndParent;
ti.hinst = ((QunicApp *)CQMainGetApp())->CQWinApp_GetHInst();
// Get tooltip from resources
int res = LoadString(ti.hinst, IDS_PREVIEW, string[99], RM_SCROLLTEXT_MAXLEN);
ti.lpszText = string[99];
// Set area
ti.rect.left = 7;
ti.rect.right = 104;
ti.rect.top = 131;
ti.rect.bottom = 145;
// Associate the ToolTip with the "tool" window.
SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
}
おかげで、
Ilija
なぜ-1ですか?誰でも落とした、あなたは本当にこれを試してみましたか? – ybungalobill
それは動作しません...あなたが以前にTTM_SETMAXTIPWIDTHを使用する場合、あなたが送信したリンクでは...しかし、何も動作しません... btw、-1は私ではありません:) –