gpt4 book ai didi

c++ - SetWindowPos 对工具提示没有影响

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:04 25 4
gpt4 key购买 nike

我正在尝试为我的 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);

我错过了什么吗?

最佳答案

您必须执行 ::SendMessage(hToolWnd, TTM_TRACKPOSITION, 0, MAKELPARAM(x, y)); 并在 ToolInfo 中设置 TTF_ABSOLUTE 标志。 uFlags 成员!

更多信息,请参阅:http://msdn.microsoft.com/en-us/library/bb760422(VS.85).aspx

关于c++ - SetWindowPos 对工具提示没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com