Сергей
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
SR> Как бы узнать какой сейчас выбран язык?
SR> key_to_window(...) переназначает [ на функцию. Hадо бы в ней узнать что
SR> нажали х или [ ?
Вот тебе для размышлений тестовый пример (для Multi-Edit 9.10.03):
Macro_file temp;
#include Win32.sh
import int GetKeyboardLayout( PKeyboardState KeyState )
user32 'GetKeyboardLayout';
macro temp1 {
int cc;
cc = GetKeyboardLayout( 0 );
MessageBox( 0, Hex_Str(cc), "Info", mb_IconInformation | mb_taskmodal );
}
Функция GetKeyboardLayout извлекает данные об активной раскладке символов
на клавиатуре для заданного потока. Нулевой аргумент означает, что
возвращается значение раскладки для активного потока. Возвращаемое значение -
дескриптор раскладки символов на клавиатуре. Младшее слово содержит
идентификатор региона, идентифицирующий язык ввода, а старшее слово содержит
дескриптор устройства, идентифицирующий физическую раскладку клавиатуры.
Обычно оба слова равны 0x0409 (лат) иди 0x0419 (рус). Выполни этот тест
сначала тогда, когда текущая клавиатура латинская, потом для русской, и
проверь, эти ли коды стоят в результате. Вот и всё.
Другие полезные функции API для работы с клавиатурой ты можешь найти в
справочниках. Например, на http://www.firststeps.ru .