Share via


ITextInputPanel::SetInPlacePosition 方法 (peninputpanel.h)

[ITextInputPanel 可用於需求一節中指定的操作系統。 它在後續版本中可能會變更或無法使用。 請改用 IInputPanelConfiguration

]

明確地將平板電腦輸入面板放在螢幕座標中。

語法

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_SETFOCUS 編輯控制元件 IDC_EDIT3的事件處理程式。 它會先檢查是否已建立 ITextInputPanel 物件 g_pTip。 如果存在,它會報告數個 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
標頭 peninputpanel.h
Dll Tiptsf.dll

另請參閱

ITextInputPanel 介面

ITextInputPanel::SetInPlaceHoverTargetPosition 方法

ITextInputPanel::SetInPlaceVisibility 方法