Scintilla и русский ввод

Раздел посвящен программированию с использованием Power Basic.
tavria2
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 25.10.2006 (Ср) 8:02

Scintilla и русский ввод

Сообщение tavria2 » 05.10.2012 (Пт) 11:42

Здравствуйте!

Пожалуйста помогите разобраться с проблемой.

Создаю окно класса Scintilla(редактор) и устанавливаю subclass, для получения клавиатурных и мышиных сообщений.
После установки subclass, выяснилось, что некорректно ведет себя клавиатурный ввод русского текста, печатает в окне мусор. :(
Другие операции с текстом, такие, как copy/paste или чтение из файла - проблем с русским не вызывают.
Если отменить subclass, то русский текст вводится без проблем.

Код: Выделить всё
#Compile Exe
#Dim All
#Include "Win32API.inc"
#Include "scintilla.inc"
#Include "scilexer.inc"

%ID_Sci = 1000
Global hDlg, hSci, hLib, hOldClass As Dword


Function SubClass(ByVal hWnd As Dword, ByVal wMsg As Dword, ByVal wParam As Dword, ByVal lParam As Long) As Long
  Select Case As Long wMsg
    Case %WM_SysKeyDown
    Case %WM_KeyDown
    Case %WM_LButtonUp
    Case %WM_RButtonUp
  End Select
  Function = CallWindowProc(hOldClass, hWnd, wMsg, wParam, lParam)
End Function


Function PBMain() As Long
   hLib = LoadLibrary("SCILEXER.DLL")
   Dialog New Pixels, 0, "Test Code",300,300,300,400, %WS_OverlappedWindow To hDlg
   Control Add "Scintilla", hDlg, %ID_Sci, "", 10,10,280,380, %WS_Child Or %WS_Visible
   Control Handle hDlg, %ID_Sci To hSci

   hOldClass = SetWindowLong(hSci, %GWL_WNDPROC, CodePtr(SubClass)) ' !!!это создает проблему!!!

   Dialog Show Modal hDlg
End Function


Еще раз повторюсь, мне subclass нужен только для получения клавиатурных и мышиных сообщений.
Хук не хочется из за тормозов.

Буду рад любым советам и предложениям.
Вложения
Sci.zip
(373.46 Кб) Скачиваний: 307

Вернуться в Power Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList