IStylusPlugin::StylusInRange 方法 (rtscom.h)
通知实现插件触笔正在进入数字化器的检测范围。
语法
HRESULT StylusInRange(
[in] IRealTimeStylus *piRtsSrc,
[in] TABLET_CONTEXT_ID tcid,
[in] STYLUS_ID sid
);
参数
[in] piRtsSrc
发送通知的 RealTimeStylus 类 对象。
[in] tcid
平板电脑上下文标识符。
[in] sid
触笔标识符。
返回值
有关返回值的说明,请参阅 RealTimeStylus 类和接口。
注解
触笔位于数字化器的范围内。 这是一个很好的位置,可以检查触笔是否反转,如果是,请切换到橡皮擦模式。
示例
以下 C++ 示例实现 IStylusPlugin::StylusInRange 方法 方法,该方法获取触笔上所有按钮的状态,并使用 TRACE 宏将其报告到调试窗口。
STDMETHODIMP CPacketModifier::StylusInRange(
/* [in] */ IRealTimeStylus *piRtsSrc,
/* [in] */ TABLET_CONTEXT_ID tcid,
/* [in] */ STYLUS_ID sid)
{
IInkCursor* pInkCursor;
HRESULT hr = piRtsSrc->GetStylusForId(sid, &pInkCursor);
if (SUCCEEDED(hr))
{
IInkCursorButtons* pInkCursorButtons;
hr = pInkCursor->get_Buttons(&pInkCursorButtons);
if (SUCCEEDED(hr))
{
LONG lButtonCount;
pInkCursorButtons->get_Count(&lButtonCount);
if (SUCCEEDED(hr))
{
IInkCursorButton* pInkCursorButton;
VARIANT index;
VariantInit(&index);
index.vt = VT_I4;
for (index.intVal = 0; index.intVal < lButtonCount; index.intVal++)
{
hr = pInkCursorButtons->Item(index, &pInkCursorButton);
if (SUCCEEDED(hr))
{
InkCursorButtonState currentState;
hr = pInkCursorButton->get_State(¤tState);
if (SUCCEEDED(hr))
{
switch(currentState)
{
case ICBS_Unavailable:
TRACE("ICBS_Unavailable\n");
break;
case ICBS_Up:
TRACE("ICBS_Up\n");
break;
case ICBS_Down:
TRACE("ICBS_Down\n");
break;
default:
TRACE("Cursor button state unknown.\n");
break;
}
}
}
}
VariantClear(&index);
}
}
}
return hr;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP Tablet PC Edition [仅限桌面应用] |
最低受支持的服务器 | 无受支持的版本 |
目标平台 | Windows |
标头 | rtscom.h |
DLL | RTSCom.dll |