本文主要是介绍MFC 对话框启用触控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先在OnInitDialog()中添加:
RegisterTouchWindow(TRUE, TWF_WANTPALM);
这个函数主要看第二个参数,及触控的类型的标志位,有两种:
TWF_FINETOUCH 设置 hWnd 为非合并触摸输入方式. 设置此标志将禁用防止手掌误触功能,从而减少获取WM_TOUCH 消息的延迟。如果您希望在用户触摸应用程序时尽可能快地做出响应,这样做非常有用。
TWF_WANTPALM 默认情况下,将启用防止手掌误触功能,并阻止将某些WM_TOUCH 消息发送到您的应用程序。如果您不希望接收因手掌接触引发的WM_TOUCH 消息,这样做非常有用。
之后就可以就接受触控消息了;
添加消息响应:
ON_MESSAGE(WM_TOUCH, OnTouch)
之后编写OnTouch函数:
头文件中:
LRESULT OnTouch(WPARAM wParam, LPARAM lParam);
源文件中:
LRESULT CIDPTouchMgrDlg::OnTouch(WPARAM wParam, LPARAM lParam)
{UINT numInputs = (UINT)wParam;TOUCHINPUT* TouchPts = new TOUCHINPUT[numInputs];if (TouchPts == NULL)return 0;//GetTouchInputInfo 获取信息 if (GetTouchInputInfo((HTOUCHINPUT)lParam, numInputs, TouchPts, sizeof(TOUCHINPUT))){for (UINT i = 0; i < numInputs; i++){TOUCHINPUT ptTouch = TouchPts[i];//触控信息//坐标点 int x = TOUCH_COORD_TO_PIXEL(ptTouch.x);int y = TOUCH_COORD_TO_PIXEL(ptTouch.y);...}}//注意这里,销毁数据CloseTouchInputHandle((HTOUCHINPUT)lParam);delete[] TouchPts;return 1;}
这篇关于MFC 对话框启用触控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!