2
這就是我正在做的事情。我創建了一個組合框,但我沒有使用它。當我點擊它時,它會調用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;
}
我怎樣才能讓這個後我點擊上下文菜單上的項目,組合框能夠正確地關閉,就好像我其實從中選擇一個項目?
謝謝