Winapi TrackPopupMenuEx看不到CWinThread内的键
我在UI CWinThread中使用TrackPopupMenuEx, CMonitor是从CWinThread派生的Winapi TrackPopupMenuEx看不到CWinThread内的键,winapi,visual-c++,mfc,Winapi,Visual C++,Mfc,我在UI CWinThread中使用TrackPopupMenuEx, CMonitor是从CWinThread派生的 monitor_ = (CMonitor *)AfxBeginThread(RUNTIME_CLASS(CMonitor)); CMonitor::InitInstance包含 m_pMainWnd = new CWnd(); m_pMainWnd->CreateEx(WS_EX_TOOLWINDOW | WS_EX_CONTROLPARENT | WS_EX_
monitor_ = (CMonitor *)AfxBeginThread(RUNTIME_CLASS(CMonitor));
CMonitor::InitInstance包含
m_pMainWnd = new CWnd();
m_pMainWnd->CreateEx(WS_EX_TOOLWINDOW | WS_EX_CONTROLPARENT | WS_EX_WINDOWEDGE | WS_EX_TOPMOST, AfxRegisterWndClass(CS_DBLCLKS),
NULL, WS_POPUP | WS_CLIPSIBLINGS | WS_VISIBLE, 50, 50, 50, 50, NULL, NULL);
那以后我会的
SetForegroundWindow(AfxGetMainWnd()->m_hWnd);
auto popup_menu_flags = TPM_RETURNCMD | TPM_BOTTOMALIGN | TPM_RIGHTBUTTON | TPM_VERTICAL;
auto menu_item = TrackPopupMenuEx(menu, popup_menu_flags, point.x, point.y, AfxGetMainWnd()->m_hWnd, NULL);
DestroyMenu(menu);
弹出菜单显示正确,我可以使用鼠标选择菜单项。但是,箭头键不起作用
我已经使用Spy++和m_pmainwn获取了WM_KEYUP、VK_DOWN的消息,但什么也没发生。未看到WM_KEYDOWN
我遗漏了什么?也许这个函数会有帮助:你为什么建议这样做?我认为这样你就可以将关键消息重定向到你的线程。您试过了吗?没有-CWin是在与CWinThread相同的线程中创建的-因此没有其他线程可重定向到。我确实注意到,当我设置ForeGroundWindow时,焦点没有设置为它,但它确实变成了前景窗口。。。隐马尔可夫模型