61
Window / Hello everyone, I have designed an RPG online game that cannot expand the input
« Last post by skyddr8511 on November 24, 2024, 02:18:40 pm »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);
}
{
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);
}