Я пытаюсь дать моему ComboBox всплывающую подсказку для длинных строк. Однако когда я вызываю SetWindowPos для всплывающей подсказки, позиция никогда не меняется. Вызывается при получении TTN_SHOW:
::SetWindowPos(textTooltip, NULL, TipRect.left, TipRect.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER);
Если я уберу флаг SWP_NOSIZE и вставлю некоторые значения в ширину / высоту, поле со списком изменит размер на эти значения, но позиция останется прежней. SetWindowPos всегда возвращает TRUE.
Наконечник инициализируется так:
textTooltip = CreateWindowEx(WS_EX_TRANSPARENT, TOOLTIPS_CLASS, NULL, TTS_NOPREFIX, 0, 0, 0, 0, this->GetSafeHwnd(), NULL, NULL, NULL);
if(!textTooltip)
return;
ZeroMemory(&ToolInfo, sizeof(TOOLINFO));
ToolInfo.cbSize = sizeof(TOOLINFO);
ToolInfo.uFlags = TTF_TRANSPARENT | TTF_SUBCLASS;
ToolInfo.hwnd = this->GetSafeHwnd();
ToolInfo.lpszText = "place holder"; //set in OnSelectChangeOk
ToolInfo.uId = 0;
ToolInfo.rect = TipRect; //rect is re-set in OnSelectChangeOk
::SendMessage(textTooltip, TTM_ADDTOOL, 0, (LPARAM)&ToolInfo);
Я что-то упустил?