Hello everyone, I have designed an RPG online game that cannot expand the input method candidate window in full screen mode. No matter what setting I try, it cannot expand, but it works normally on other engines and can display input method candidate windows. This is my code. Please provide suggestions
void StartInDrawText(int sX, int sY, uint32 iLen, char* pBuffer, bool bIsHide, int right)
{
m_InputStatus = TRUE;
m_iInputX = sX;
m_iInputY = sY;
m_pInputBuffer = pBuffer;
ZeroMemory(m_cEdit, sizeof(m_cEdit));
m_inputMaxLen = iLen;
m_iInputX2 = right;
G_hEditWnd = CreateWindow(RICHEDIT_CLASS, NULL, WS_POPUP | ES_SELFIME, sX - 5, sY - 1, iLen * 12, 16, g_window, (HMENU)0, g_instance, NULL);
SetWindowText(G_hEditWnd, m_pInputBuffer);
SendMessage(G_hEditWnd, EM_EXLIMITTEXT, 0, iLen - 1);
SendMessage(G_hEditWnd, EM_SETLANGOPTIONS, 0, ~IMF_AUTOFONT);
COMPOSITIONFORM composform;
composform.dwStyle = CFS_POINT;
composform.ptCurrentPos.x = sX;
composform.ptCurrentPos.y = sY;
HIMC hImc = ImmGetContext(g_window);
ImmSetCompositionWindow(hImc, &composform);
int StrLen = strlen(m_pInputBuffer);
SendMessage(G_hEditWnd, EM_SETSEL, StrLen, StrLen);
}
Hello everyone, I have designed an RPG online game that cannot expand the input method candidate window in full screen mode. No matter what setting I try, it cannot expand, but it works normally on other engines and can display input method candidate windows. This is my code. Please provide suggestions
void StartInDrawText(int sX, int sY, uint32 iLen, char* pBuffer, bool bIsHide, int right)
{
m_InputStatus = TRUE;
m_iInputX = sX;
m_iInputY = sY;
m_pInputBuffer = pBuffer;
ZeroMemory(m_cEdit, sizeof(m_cEdit));
m_inputMaxLen = iLen;
m_iInputX2 = right;
G_hEditWnd = CreateWindow(RICHEDIT_CLASS, NULL, WS_POPUP | ES_SELFIME, sX - 5, sY - 1, iLen * 12, 16, g_window, (HMENU)0, g_instance, NULL);
SetWindowText(G_hEditWnd, m_pInputBuffer);
SendMessage(G_hEditWnd, EM_EXLIMITTEXT, 0, iLen - 1);
SendMessage(G_hEditWnd, EM_SETLANGOPTIONS, 0, ~IMF_AUTOFONT);
COMPOSITIONFORM composform;
composform.dwStyle = CFS_POINT;
composform.ptCurrentPos.x = sX;
composform.ptCurrentPos.y = sY;
HIMC hImc = ImmGetContext(g_window);
ImmSetCompositionWindow(hImc, &composform);
int StrLen = strlen(m_pInputBuffer);
SendMessage(G_hEditWnd, EM_SETSEL, StrLen, StrLen);
}
I tried, SetWindowPos(G_hEditWnd, HWND_TOPMOST, sX - 5, sY - 1, iLen * 12, 16, SWP_NOACTIVATE);
I have also tried GPT's answer, but it cannot solve the problem. The input method is still blocked by the SFML game window. Request assistance.