次の方法で共有


ITextInputPanel::SetInPlacePosition メソッド (peninputpanel.h)

[ITextInputPanel は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、 IInputPanelConfiguration を使用します

]

タブレット PC 入力パネルを画面座標に明示的に配置します。

構文

HRESULT SetInPlacePosition(
  int                xPosition,
  int                yPosition,
  CorrectionPosition position
);

パラメーター

xPosition

入力パネルの左上隅の水平方向の x 座標。補正コームは表示されません。

yPosition

入力パネルの左上隅の垂直方向の y 座標。補正コームは表示されません。

position

CorrectionPosition 列挙で定義されているように、挿入後の補正コームがポップアップする方向。

戻り値

入力パネルが開いている (ドッキングまたはフローティング) ときに、移動できない場合は false を 返します。それ以外の場合は true を返します。

リターン コード 説明
S_OK
正常終了しました。
E_FAIL
未指定のエラーが発生しました。

解説

メモ Windows 7 では、 SetInPlacePosition を呼び出しても 、CorrectionPosition パラメーターは使用されなくなります。
 
入力パネルと補正コームを画面上で維持するために、入力パネルの位置を決定する際には、補正コームの高さを考慮してください。 position パラメーターで指定された方向は、ITextInputPanel::P referredInPlaceDirection プロパティを使用して設定された方向をオーバーライドします。

入力パネルの配置場所に制限はありません。 入力パネルが画面から消えないことを確認するのは、アプリケーション開発者の責任です。 この目的には、 ITextInputPanel::InPlaceBoundingRectangle プロパティITextInputPanel::P opUpCorrectionHeight プロパティITextInputPanel::P opDownCorrectionHeight プロパティおよび ITextInputPanelEventSink::InPlaceSizeChanging メソッドを使用できます。

このメソッドは同期的です。 配置は、 メソッドが戻る前に行われます。

この C++ の例では、EN_SETFOCUSIDC_EDIT3Edit コントロール のイベント ハンドラーを実装します。 最初に、 ITextInputPanel オブジェクト が作成されているかどうかを確認します g_pTip。 存在する場合は、TRACE マクロを使用して出力をデバッグするために、複数の ITextInputPanel インターフェイス プロパティの値を報告します。 また、 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 タブレット PC エディション [デスクトップ アプリのみ]
サポートされている最小のサーバー サポートなし
対象プラットフォーム Windows
ヘッダー peninputpanel.h
[DLL] Tiptsf.dll

こちらもご覧ください

ITextInputPanel インターフェイス

ITextInputPanel::SetInPlaceHoverTargetPosition メソッド

ITextInputPanel::SetInPlaceVisibility メソッド