Метод ITextInputPanel::SetInPlacePosition (peninputpanel.h)
[ITextInputPanel доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте IInputPanelConfiguration.
]
Явным образом размещает панель ввода планшетного пк в экранных координатах.
Синтаксис
HRESULT SetInPlacePosition(
int xPosition,
int yPosition,
CorrectionPosition position
);
Параметры
xPosition
Горизонтальная координата по оси X для левого верхнего угла панели ввода без расчески коррекции.
yPosition
Вертикальная координата по оси Y для левого верхнего угла панели ввода без видимой расчески коррекции.
position
Направление, в соответствии с которым должно появиться расческа после вставки, как определено перечислением CorrectionPosition .
Возвращаемое значение
Возвращает значение false , если панель ввода открыта (закрепленная или плавающая) и не может быть перемещена; в противном случае возвращается значение true.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Произошла неизвестная ошибка. |
Комментарии
Нет ограничений на расположение панели ввода. Разработчик приложения отвечает за то, чтобы панель ввода не сходит с экрана. Для этой цели можно использовать свойства ITextInputPanel::InPlaceBoundingRectangle, ITextInputPanel::P opUpCorrectionHeight и ITextInputPanel::P opDownCorrectionHeight, а также метод ITextInputPanelEventSink::InPlaceSizeChanging.
Этот метод является синхронным. Позиционирование выполняется перед возвратом метода.
Примеры
В этом примере C++ реализуется EN_SETFOCUS
обработчик событий для элемента управления Edit , IDC_EDIT3
. Сначала проверяется, g_pTip
создан ли объект ITextInputPanel . Если он существует, он сообщает значения нескольких свойств интерфейса ITextInputPanel для отладки выходных данных с помощью макроса TRACE . Он также задает положение панели ввода путем вызова метода ITextInputPanel::SetInPlacePosition.
void CCOMTIPDlg::OnEnSetFocusEdit3()
{
if (NULL != g_pTip)
{
CorrectionMode mode;
if (SUCCEEDED(g_pTip->get_CurrentCorrectionMode(&mode)))
{
TRACE("CurrentCorrectionMode: %d\n", mode);
}
InPlaceState state;
if (SUCCEEDED(g_pTip->get_CurrentInPlaceState(&state)))
{
TRACE("CurrentInPlaceState: %d\n", state);
}
PanelInputArea area;
if (SUCCEEDED(g_pTip->get_CurrentInputArea(&area)))
{
TRACE("CurrentInputArea: %d\n", area);
}
InteractionMode iMode;
if (SUCCEEDED(g_pTip->get_CurrentInteractionMode(&iMode)))
{
TRACE("CurrentInteractionMode: %d\n", iMode);
}
RECT rect;
if (SUCCEEDED(g_pTip->get_InPlaceBoundingRectangle(&rect)))
{
TRACE("InPlaceBoundingRectangle.top: %d\n", rect.top);
TRACE("InPlaceBoundingRectangle.left: %d\n", rect.left);
TRACE("InPlaceBoundingRectangle.bottom: %d\n", rect.bottom);
TRACE("InPlaceBoundingRectangle.right: %d\n", rect.right);
}
int nHeight;
if (SUCCEEDED(g_pTip->get_PopDownCorrectionHeight(&nHeight)))
{
TRACE("PopDownCorrectionHeight: %d\n", nHeight);
}
if (SUCCEEDED(g_pTip->get_PopUpCorrectionHeight(&nHeight)))
{
TRACE("PopUpCorrectionHeight: %d\n", nHeight);
}
if (SUCCEEDED(g_pTip->SetInPlacePosition(300, 300, CorrectionPosition_Bottom)))
{
TRACE("Call to SetInPlacePosition() succeeded.\n");
}
else
{
TRACE("Call to SetInPlacePosition() failed.\n");
}
}
else
{
TRACE("ITextInputPanel object is NULL.\n");
}
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP Tablet PC Edition [только классические приложения] |
Минимальная версия сервера | Ни одна версия не поддерживается |
Целевая платформа | Windows |
Header | peninputpanel.h |
DLL | Tiptsf.dll |