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;
}
가 어떻게 그것을 만들 수 있습니다, 콤보 상자가 제대로 종료 ?
감사합니다.