Добрый день!
Беру код из примеров "skin", модифицирую конец "skin.cpp"
OldWndProc = (WNDPROC)SetWindowLongPtr((pwnd->hwnd), GWLP_WNDPROC, (LPARAM)(WNDPROC)(WindowProc));
ShowWindow(pwnd->hwnd, nCmdShow);
UpdateWindow(pwnd->hwnd);
return TRUE;
новая функция окна имеет вид:
LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return CallWindowProc(OldWndProc, hwnd, message, wParam, lParam);
}
В результате, невожможно ввести русские символы в "<input type="text" />". Нажатие последовательности "qweasdzxc" приводит к отображению "9FCDK2OGA".
Прошу помочь решить проблему.
Здравствуйте, DemonS77, Вы писали:
DS> В результате, невожможно ввести русские символы в "<input type="text" />". Нажатие последовательности "qweasdzxc" приводит к отображению "9FCDK2OGA".
DS>Прошу помочь решить проблему.
1) твой проект Unicode или Multibyte?
2) зачем там субклассинг вообще? Там же функция окна в исходниках — добаляй в ней то что тебе нужно.
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, DemonS77, Вы писали:
DS>> В результате, невожможно ввести русские символы в "<input type="text" />". Нажатие последовательности "qweasdzxc" приводит к отображению "9FCDK2OGA".
DS>>Прошу помочь решить проблему.
CS>1) твой проект Unicode или Multibyte?
CS>2) зачем там субклассинг вообще? Там же функция окна в исходниках — добаляй в ней то что тебе нужно.
1. Проект в multibyte.
2. Дело в том, что я хотел регистрировать один общий класс окна, а функционал по обработке пользовательских (WM_USER+) сообщений подключать сабкласингом.
Проблему я обойду путем написания новой, полной функции окна, но странно, что сабкласинг приводит к такому неожиданному эффекту...
Здравствуйте, DemonS77, Вы писали:
CS>>1) твой проект Unicode или Multibyte?
CS>>2) зачем там субклассинг вообще? Там же функция окна в исходниках — добаляй в ней то что тебе нужно.
DS>1. Проект в multibyte.
А функция окна Unicode в skin примере.
DS>2. Дело в том, что я хотел регистрировать один общий класс окна, а функционал по обработке пользовательских (WM_USER+) сообщений подключать сабкласингом.
DS>Проблему я обойду путем написания новой, полной функции окна, но странно, что сабкласинг приводит к такому неожиданному эффекту...
subclassing нужно грамотно делать. Например вот так:
LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return CallWindowProcW(OldWndProc, hwnd, message, wParam, lParam);
}