我尝试创建一个弹出菜单,该菜单在编辑控件上输入时显示,以显示建议。问题是我无法继续打字,因为弹出窗口不会消失。唯一的方法是在弹出窗口外单击。如果您输入的每个角色都必须在外面点击以继续写作,那么这一切都很不方便。
我在调用TrackPopupMenu之前尝试过SetForeGround,但它没有用。
if (HIWORD(wParam) == EN_CHANGE)
{
HMENU suggest = CreatePopupMenu();
WCHAR text[50];
GetWindowText(tagTxt, text, 50);
if (wcslen(text) > 0)
{
for (int i = 0; i < Tag.size(); i++)
{
if (wcsncmp(Tag[i].tagName, text, wcslen(text)) == 0)
AppendMenu(suggest, MF_STRING, NULL, Tag[i].tagName);
}
POINT curPoint;
GetCursorPos(&curPoint);
SetForegroundWindow(hWnd);
UINT code = TrackPopupMenu(suggest,TPM_RETURNCMD | TPM_NONOTIFY, curPoint.x, curPoint.y, 0, hWnd, NULL);
SendMessage(hWnd, WM_NULL, 0, 0);
}
}