无法退出TrackPopupMenu

时间:2017-01-03 12:06:42

标签: c++ api winapi menu

我尝试创建一个弹出菜单,该菜单在编辑控件上输入时显示,以显示建议。问题是我无法继续打字,因为弹出窗口不会消失。唯一的方法是在弹出窗口外单击。如果您输入的每个角色都必须在外面点击以继续写作,那么这一切都很不方便。

我在调用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);
            }
         }

0 个答案:

没有答案