Вот что я делаю. Я создал комбинированный список, но я не использую его для этого. Когда я нажимаю на него, он вызывает trackpopup и вызывает контекстное меню. Однако после того, как я нажал на контекстное меню, я бы хотел, чтобы он закрывал комбинированный список так же, как если бы вы щелкнули где-нибудь (убив фокус) или выбрали элемент в комбинированном списке.
Вот событие для выпадающего списка:
if(uMsg == WM_COMMAND)
{
HMENU m;
m = CreatePopupMenu();
MENUITEMINFO itm;
itm.cbSize = sizeof(MENUITEMINFO);
itm.fMask = MIIM_FTYPE | MIIM_STRING;
itm.fType = MIIM_STRING;
itm.dwTypeData = "Kill time";
itm.cch = 12;
POINT p;
GetCursorPos(&p);
InsertMenuItem(m,4,false,&itm);
if((int)HIWORD(wParam) == CBN_DROPDOWN)
{
SendMessage(engineGL.controls.TopSelHwnd,WM_KILLFOCUS,(WPARAM)engineGL.controls.TopSelHwnd,0);
SendMessage(engineGL.controls.TopSelHwnd,WM_IME_SETCONTEXT,(WPARAM)0,(LPARAM)ISC_SHOWUIALL);
TrackPopupMenu(m,0,p.x,p.y,NULL,hWnd,NULL);
SendMessage(hWnd,WM_KILLFOCUS,0,0);
SetFocus(HWND_DESKTOP);
}
return 1;
}
Как мне сделать так, чтобы после того, как я щелкнул элемент в контекстном меню, выпадающий список закрывался должным образом, как будто я фактически выбрал элемент из него?
Спасибо