MagSetInputTransform 函式 (放大.h)
設定手寫筆和觸控輸入的目前作用中輸入轉換,以來源矩形和目的地矩形表示。
語法
BOOL MagSetInputTransform(
[in] BOOL fEnabled,
[in] const LPRECT pRectSource,
[in] const LPRECT pRectDest
);
參數
[in] fEnabled
類型: BOOL
TRUE 表示啟用輸入轉換,或為 FALSE 來停用它。
[in] pRectSource
類型:const LPRECT
新的來源矩形,以未放大的螢幕座標定義螢幕區域。 如果 bEnabled 為 FALSE,則會忽略此參數。
[in] pRectDest
類型:const LPRECT
新的目的地矩形,以未放大的螢幕座標定義顯示放大螢幕內容的螢幕區域。 此矩形中的畫筆和觸控輸入會對應至來源矩形。 如果 bEnabled 為 FALSE,則會忽略此參數。
傳回值
類型: BOOL
如果成功,則傳回 TRUE,否則傳回 FALSE。
備註
輸入轉換會將放大畫面內容的座標空間對應至實際 (未放大的螢幕座標空間) 螢幕座標空間。 這可讓系統將放大畫面內容中輸入的手寫筆和觸控輸入傳遞至螢幕上的正確 UI 元素。 例如,在沒有輸入轉換的情況下,輸入會傳遞至位於未放大螢幕座標的專案,而不是顯示在放大畫面內容中的專案。
此函式需要呼叫進程具有 UIAccess 許可權。 如果呼叫端沒有 UIAccess 許可權, 則 MagSetInputTransform 的呼叫會失敗, 而 GetLastError 函式會傳回ERROR_ACCESS_DENIED。 如需詳細資訊,請參閱 UI 自動化安全性考慮 和 /MANIFESTUAC (在資訊清單中內嵌 UAC 資訊) 。
從 Windows 10 Creators Update (1703 版) 開始,除了手寫筆和觸控輸入) 之外,您還必須使用MagSetInputTransform 函數進行滑鼠輸入,以路由傳送至放大元素 (。
範例
下列範例會設定全螢幕放大鏡的輸入轉換。
// Description:
// Applies an input transformation to adjust pen and touch input to account
// for the current magnification factor.
//
BOOL SetInputTranform()
{
// Get the current magnification settings.
float magLevel;
int xOffset, yOffset;
BOOL fResult = MagGetFullscreenTransform(&magLevel, &xOffset, &yOffset);
if (fResult)
{
// Assume that pen or touch input occurs only in the primary monitor.
RECT rcDest;
rcDest.left = 0;
rcDest.top = 0;
rcDest.right = GetSystemMetrics(SM_CXSCREEN);
rcDest.bottom = GetSystemMetrics(SM_CYSCREEN);
// Calculate the portion of the screen that is visible in the magnified
// view.
RECT rcSource;
rcSource.left = xOffset;
rcSource.top = yOffset;
rcSource.right = rcSource.left + (int)(rcDest.right / magLevel);
rcSource.bottom = rcSource.top + (int)(rcDest.bottom / magLevel);
fResult = MagSetInputTransform(TRUE, &rcSource, &rcDest);
}
return fResult;
}
需求
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | 放大.h |
程式庫 | Magnification.lib |
Dll | Magnification.dll |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應