話不多說,直接進入正題。
在cocos2d\cocos\2d\platform\desktop下的CCEGLView.cpp
找到glfwSetCharCallback(_mainWindow, GLFWEventHandler::onGLFWCharCallback);
進入回調函數:
void
GLView::onGLFWCharCallback(GLFWwindow *window, unsigned int character)
{
IMEDispatcher::sharedDispatcher()->dispatchInsertText((const char*)&character, 1);
}
直接添加代碼:
void
GLView::onGLFWCharCallback(GLFWwindow *window, unsigned int character)
{
if (character < 128)
IMEDispatcher::sharedDispatcher()->dispatchInsertText((const char*)&character, 1);
else
{
char szUtf8[8] = { 0 };
int nLen = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)&character, 1, szUtf8, sizeof(szUtf8), NULL, NULL);
IMEDispatcher::sharedDispatcher()->dispatchInsertText(szUtf8, nLen);
}
}
ok,windows上的輸入亂碼 就解決了。