Структура IMESTRUCT (ime.h)
Используется SendIMEMessageEx для указания подфункции, выполняемой в сообщении редактора методов ввода (IME), и его параметров. Эта структура также используется для получения возвращаемых значений из этих подфункций.
Синтаксис
typedef struct tagIMESTRUCT {
UINT fnc;
WPARAM wParam;
UINT wCount;
UINT dchSource;
UINT dchDest;
LPARAM lParam1;
LPARAM lParam2;
LPARAM lParam3;
} IMESTRUCT, *PIMESTRUCT, *NPIMESTRUCT, *LPIMESTRUCT;
Члены
fnc
Подфункция. Одно из следующих значений.
IME_ENTERWORDREGISTERMODE
Используется для регистрации слов. Слова регистрируются как приложение отправляет слово и его чтение. Элементы структуры интерпретируются следующим образом:
Член | Type | Описание |
---|---|---|
lParam1 [Windows 3.1] | LPARAM | Слово низкого порядка задает дескриптор глобальной памяти, содержащий строку слова, заканчивающуюся на 0. Глобальная память — это блок памяти, выделенный путем указания флагов GMEM_MOVEABLE и GMEM_SHARE в функции GlobalAlloc . |
lParam2 [Windows 3.1] | LPARAM | Слово нижнего порядка указывает дескриптор глобальной памяти, содержащий строку чтения, заканчивающуюся на 0. Глобальная память — это блок памяти, выделенный путем указания флагов GMEM_MOVEABLE и GMEM_SHARE в функции GlobalAlloc . |
lParam3 [Windows 3.1] | LPARAM | Должен иметь значение NULL. |
lParam1 [Windows NT] | LPARAM | Задает дескриптор глобальной памяти, содержащий строку слова, заканчивающуюся на 0. Глобальная память — это блок памяти, выделенный путем указания флагов GMEM_MOVEABLE и GMEM_SHARE в функции GlobalAlloc . |
lParam2 [Windows NT] | LPARAM | Задает дескриптор глобальной памяти, содержащий строку чтения, заканчивающуюся на 0. Глобальная память — это блок памяти, выделенный путем указания флагов GMEM_MOVEABLE и GMEM_SHARE в функции GlobalAlloc . |
lParam3 [Windows NT] | LPARAM | Используется для указания сведений о части речи. Так как такие сведения нельзя указать в текущей спецификации Windows, здесь задано значение NULL . |
Возвращаемое значение указывает результат регистрации слов. ЗНАЧЕНИЕ TRUE , если регистрация была обработана в обычном режиме; в противном случае — FALSE.
Если требуется информация, например часть речи, должно появиться диалоговое окно с запросом на ввод данных. В элементах lParam1 и lParam2 может быть задано значение NULL; в этом случае в связанном поле записи диалогового окна ничего не должно отображаться.
IME_GETCONVERSIONMODE
Получает текущий режим преобразования IME. В этой подпрограмме не используются параметры.
Это то же самое, что и IME_GET_MODE.
Возвращает текущий режим преобразования IME в виде сочетания IME_MODE_ALPHANUMERIC для IME_MODE_NOCODEINPUT. Ниже перечислены режимы преобразования.
Режим преобразования | Режим |
---|---|
IME_MODE_ALPHANUMERIC | Буквенно-цифровой |
IME_MODE_KATAKANA | Катакана |
IME_MODE_HIRAGANA | Хирагана |
IME_MODE_SBCSCHAR | Однобайтовый символ |
IME_MODE_DBCSCHAR | Двухбайтовый символ |
IME_MODE_ROMAN | Римский характер |
IME_MODE_NOROMAN | Неримский символ |
IME_MODE_CODEINPUT | Входные данные кода |
IME_MODE_NOCODEINPUT | Входные данные, не относящиеся к коду |
IME_GET_MODE
То же, что и IME_GETCONVERSIONMODE.
IME_MOVECONVERTWINDOW
То же, что и IME_SETCONVERSIONWINDOW.
IME_SETCONVERSIONFONTEX
Шрифт, используемый для отображения неопределенной строки, которая отображается в окне преобразования. Элементы структуры интерпретируются следующим образом:
Член | Type | Описание |
---|---|---|
lParam1 [Windows 3.1] | LPARAM | Слово низкого порядка указывает дескриптор глобальной памяти, содержащий структуру LOGFONT , задающую логический шрифт. Глобальная память — это блок памяти, выделенный путем указания флагов GMEM_MOVEABLE и GMEM_SHARE в функции GlobalAlloc . ЗНАЧЕНИЕ NULL указывает системный шрифт. |
lParam1 [Windows NT] | LPARAM | Задает дескриптор глобальной памяти, содержащий структуру LOGFONT , задающую логический шрифт. Глобальная память — это блок памяти, выделенный путем указания флагов GMEM_MOVEABLE и GMEM_SHARE в функции GlobalAlloc . ЗНАЧЕНИЕ NULL указывает системный шрифт. |
Эта подфункция не имеет возвращаемого значения.
Шрифт, заданный IME_SETCONVERSIONFONTEX , можно использовать только для отображения неопределенных строк.
Чтобы отобразить неопределенные строки в позиции по умолчанию, используйте системный шрифт. Если позиция отображения больше не является позицией по умолчанию, включите ранее указанный шрифт.
Глобальная память, содержащая структуру LOGFONT , освобождается приложением.
Если IME, отображающий окно преобразования, получает команду IME_SETCONVERSIONFONTEX и в результате обработки команды окно преобразования изменилось, IME должен отправить сообщение WM_IME_REPORT:IR_CHANGECONVERT. Это сообщение не должно отправляться, если шрифт, указанный IME_SETCONVERSIONFONTEX , совпадает с шрифтом, используемым редактором IME.
IME_SETCONVERSIONMODE
Задает режим преобразования IME. Элемент wParam задает одно или несколько следующих значений:
Значение | Значение |
---|---|
IME_MODE_ALPHANUMERIC | Режим преобразования буквенно-цифровых цифр. Это значение нельзя использовать с IME_MODE_KATAKANA или IME_MODE_HIRAGANA. |
IME_MODE_KATAKANA | Режим преобразования Катакана. Это значение нельзя использовать с IME_MODE_ALPHANUMERIC или IME_MODE_HIRAGANA. |
IME_MODE_HIRAGANA | Режим преобразования хираганы. Это значение нельзя использовать с IME_MODE_ALPHANUMERIC или IME_MODE_HIRAGANA. |
IME_MODE_SBCSCHAR | Режим преобразования однобайтовых символов. Этот параметр нельзя использовать с IME_MODE_DBCSCHAR. |
IME_MODE_DBCSCHAR | Режим преобразования двухбайтовых символов. Этот параметр нельзя использовать с IME_MODE_SBCSCHAR. |
IME_MODE_ROMAN | Римский режим преобразования символов. Этот параметр нельзя использовать с IME_MODE_NOROMAN. |
IME_MODE_NOROMAN | Нероманский режим преобразования символов. Этот параметр нельзя использовать с IME_MODE_ROMAN. |
IME_MODE_CODEINPUT | Режим преобразования входных данных кода. Этот параметр нельзя использовать с IME_MODE_NOCODEINPUT. Способ работы IME в режиме ввода кода зависит от конкретного IME. |
IME_MODE_NOCODEINPUT | Режим преобразования входных данных без кода. Этот параметр нельзя использовать с IME_MODE_CODEINPUT. |
Возвращаемое значение указывает, был ли успешно настроен данный режим преобразования. Он возвращает состояние режима преобразования, действовав ранее, если был настроен новый режим преобразования. в противном случае — NULL.
IME_SETCONVERSIONWINDOW
Размер и положение ограничивающего прямоугольника для IME, а также начальное положение окна преобразования. IME отображает неопределенную строку в позиции, указанной этой подфункцией.
Элемент wParam задает одно из следующих значений:
Значение | Значение |
---|---|
MCW_DEFAULT | Отображает окно преобразования в позиции по умолчанию, которая обычно находится в нижней части экрана.
Если стиль MCW_DEFAULT указан в сообщении IME_SETCONVERSIONWINDOW, то, когда IME отображает или рисует окно преобразования в позиции по умолчанию, он не должен отправлять IR_OPENCONVERT, IR_CHANGECONVERT, IR_FULLCONVERT или IR_CLOSECONVERT сообщение. |
MCW_WINDOW | Отображает окно преобразования в координате, заданной в элементе lParam1 , в окне, указанном в параметре wParam WM_CONVERTREQUEST или WM_CONVERTREQUESTEX сообщения. Значение в lParam1 указывает координаты относительно верхнего левого угла окна, при этом слово нижнего порядка представляет координату X, а слово высокого порядка — координату Y. Ограничивающий прямоугольник является клиентским прямоугольником заданного окна и является наиболее типичным способом вызова преобразования кана в кандзи.
Если стиль MCW_WINDOW указан в сообщении IME_SETCONVERSIONWINDOW, IME должен отправить IR_OPENCOVERT сообщение, если состояние окна преобразования изменилось с закрытого на открытое. Если состояние окна преобразования изменилось с открытого на закрытое, IME должен отправить IR_CLOSECONVERT сообщение. Однако есть исключение. Дополнительные сведения см. в IME_WINDOWUPDATE. |
MCW_WINDOW | MCW_RECT | Аналогично MCW_WINDOW за исключением того, что ограничивающий прямоугольник задается элементами lParam2 и lParam3 . Элемент lParam2 указывает верхнюю левую точку, а lParam3 — нижнюю правую точку, каждый из которых имеет слово нижнего порядка, представляющее координату X, а слово высокого порядка — координату Y. Координаты находятся относительно верхней левой части окна. |
MCW_SCREEN | Отображает окно преобразования с верхним левым углом, обозначенным элементом lParam1 . Элемент lParam1 указывает абсолютные координаты с источником в левом верхнем углу экрана. Слово нижнего порядка представляет координату X, а слово высокого порядка — координату Y. Ограничивающий прямоугольник является полноэкранным.
Если стиль MCW_SCREEN указан в сообщении IME_SETCONVERSIONWINDOW, IME должен отправить IR_OPENCOVERT сообщение, если состояние окна преобразования изменилось с закрытого на открытое. Если состояние окна преобразования изменилось с открытого на закрытое, IME должен отправить IR_CLOSECONVERT сообщение. Однако есть исключение. Дополнительные сведения см. в IME_WINDOWUPDATE. |
MCW_SCREEN | MCW_RECT | Аналогично MCW_SCREEN за исключением того, что ограничивающий прямоугольник задается элементами lParam2 и lParam3 . Элемент lParam2 указывает верхнюю левую точку, а lParam3 — нижнюю правую точку, каждый из которых имеет слово нижнего порядка, представляющее координату X, а слово высокого порядка — координату Y. Координаты являются абсолютными координатами с источником в левом верхнем углу экрана. |
MCW_HIDDEN [Windows 3.1] | Если этот флаг указан, IME не отображает окно преобразования. Вместо этого само приложение отображает неопределенные строки. Элемент lParam1 указывает координаты позиции курсора, отображаемой приложением или точкой интереса. Элементы lParam2 и lParam3 указывают регион, в котором IME не включает отображение. IME, который отображает определенные строковые кандидаты во всплывающем окне, может использовать эти фрагменты информации, чтобы определить, где будет отображаться окно определенных строк-кандидатов. Окно для отображения потенциальных строк считается системным окном. Таким образом, IME зависит от того, следует ли отображать такое окно, где и как его отображать, а также какие ввод с клавиатуры использовать. Три элемента lParam1, lParam2 и lParam3 указывают абсолютные координаты в верхней левой части экрана, каждый из которых содержит слово нижнего порядка, представляющее координату X, а слово высокого порядка — координату Y.
Если указан флаг MCW_HIDDEN, IME отправляет IR_UNDETERMINE сообщение с запросом на отображение в приложении неопределенной строки. Само приложение отображает неопределенную строку, содержащуюся в этом сообщении. После указания флага MCW_HIDDEN IME не отправляет IR_OPENCONVERT, IR_CHANGECONVERT или IR_CLOSECONVERT сообщение. Если приложение указывает MCW_HIDDEN и в то же время запрашивает прямоугольник, слишком большой для отображения окна-кандидата для определенной строки, это должно рассматриваться как ошибка. Код ошибки должен быть IME_RD_TOOLONG. Если стиль MCW_HIDDEN указан в сообщении IME_SETCONVERSIONWINDOW, IME никогда не должен отправлять IR_OPENCONVERT, IR_CHANGECONVERT, IR_FULLCONVERT или IR_CLOSECONVERT. |
MCW_VERTICAL | Сообщает IME, что приложение отображает строки символов в вертикальном формате записи. Если этот флаг указан, окно преобразования отображается для вертикальной записи, а позиция, обозначенная элементом lParam1 , находится в правом верхнем углу. Этот флаг можно указать с помощью MCW_WINDOW, MCW_WINDOW|MCW_RECT, MCW_SCREEN или MCW_SCREEN|MCW_RECT. IME должен поддерживать MCW_VERTICAL. Если указан MCW_VERTICAL и выбранный шрифт не предназначен для вертикальной записи, IME использует шрифт вертикальной записи по умолчанию. Этот шрифт по умолчанию создается следующим образом: |
Возвращаемое значение указывает, была ли выполнена команда. Значение TRUE , если команда выполнена успешно; в противном случае — FALSE.
Если кажется, что неопределенная строка переполняет ограничивающий прямоугольник, IME должен выдать приложению сообщение отчета WM_IME_REPORT:IR_FULLCONVERT перед отображением этой строки. Если приложение не обрабатывает это сообщение, последующая обработка для отображения не формулируется в этой спецификации, но она остается в IME. Например, неопределенная строка может быть прокручена в ограничивающем прямоугольнике или временно перемещена в положение по умолчанию.
Если сообщение IME_SETCONVERSIONWINDOW вызывается, когда IME содержит неопределенную строку, IME должен выдать сообщение WM_IME_REPORT:IR_CLOSECONVERT; Если строка помещается в окно, заданное в качестве параметра, IME должен выдать сообщение WM_IME_REPORT:IR_OPENCONVERT. Только после этого должно быть отрисовано окно преобразования. Если строка не помещается в окне, IME должен выдать сообщение WM_IME_REPORT:IR_FULLCONVERT.
Положение ограничивающего прямоугольника можно указать за пределами физической области экрана. Если весь ограничивающий прямоугольник находится за пределами физического экрана, не должны отображаться неопределенные строки. Если часть ограничивающего прямоугольника находится за пределами физического экрана, IME обрезает ограничивающий прямоугольник таким образом, чтобы ни один из элементов неопределенной строки не заползал экран, а также настраивает начальную позицию экрана.
Не рекомендуется задавать максимальное количество строк окна преобразования или максимальное число символов, отображаемых в окне преобразования.
Если окно преобразования перекрывает системное окно, окно преобразования должно быть видимым. Например, окно преобразования может иметь верхний приоритет для отображения или системное окно можно переместить в другое место.
IME должен отправить IR_CHANGECONVERT сообщение, если окно преобразования изменилось по размеру, отображаемого содержимого или цвету отображения. Однако если неопределенная строка не помещается в указанное окно, редактор IME должен отправить IR_FULLCONVERT сообщение, а не IR_CHANGECONVERT.
Когда IME переключился из режима MCW_WINDOW или MCW_SCREEN на MCW_DEFAULT, он должен отправить IR_CLOSECONVERT сообщение, если существует неопределенная строка.
Если IME переключился из режима MCW_WINDOW или MCW_SCREEN на MCW_HIDDEN, он должен отправить сообщение IR_CLOSECONVERT, если существует неопределенная строка.
Когда IME переключился из режима MCW_HIDDEN на MCW_DEFAULT, MCW_SCREEN или MCW_WINDOW, IME должен передать IR_UNDETERMINE сообщение с неопределенной строкой = 0 и определенной строкой = 0.
IME_SETLEVEL
Подфункция для корейского языка, которая задает уровень IME для текущего приложения. Член wParam принимает одно из следующих значений уровня.
Level | Значение |
---|---|
1 | IME не поддерживается. Все сообщения, относящиеся к IME, игнорируются. |
2 | Частичная поддержка IME. Поддерживает подмножество поведения IME, включая положение окон композиции или кандидатов, а также режим ввода или состояние. |
3 | Полная поддержка IME. |
IME_SETOPEN
Задает состояние функции преобразования "кана в кандзи" в редакторе IME.
Для элемента wParam задано ненулевое значение, чтобы открыть IME, и нулевое значение, чтобы закрыть IME.
Возвращаемое значение указывает предыдущее состояние функции преобразования кана в кандзи. Возвращает значение TRUE , если открыто; в противном случае — FALSE.
Неопределенная строка не должна определяться, если функция преобразования кана в кандзи была закрыта IME_SETOPEN.
Когда функция преобразования кана в кандзи должна быть закрыта IME_SETOPEN, IME должен отправить IR_CLOSECONVERT сообщение, если IME находится в режиме MCW_WINDOW или MCW-SCREEN и если окно преобразования открыто. Однако IME не должен выдавать IR_CLOSECONVERT, если он находится в режиме MCW_HIDDEN и если существует неопределенная строка.
IME_SET_MODEK
Версия IME_SETCONVERSIONMODE для корейского языка.
wParam
Использование зависит от подфункции, указанной в fnc.
wCount
Использование зависит от подфункции, указанной в fnc.
dchSource
Использование зависит от подфункции, указанной в fnc.
dchDest
Использование зависит от подфункции, указанной в fnc.
lParam1
Использование зависит от подфункции, указанной в fnc.
lParam2
Использование зависит от подфункции, указанной в fnc.
lParam3
Использование зависит от подфункции, указанной в fnc.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | ime.h |
См. также раздел
Основные понятия
Справочные материалы