CloseGestureInfoHandle 函数-中文整理

来源:互联网 发布:环境工程就业率数据 编辑:程序博客网 时间:2024/06/10 05:51

关闭与笔势信息句柄相关联的资源。

语法

BOOL WINAPI CloseGestureInfoHandle(HGESTUREINFO hGestureInfo);

参数

hGestureInfo

笔势信息句柄。

返回值

如果函数成功,则返回值为非零值。

如果函数失败,则返回值为零。若要获取扩展的错误信息,请使用GetLastError 函数。

评论

如果某个应用程序处理 WM_GESTURE 消息,则该应用程序负责关闭使用此函数的句柄。如果不这样做,则可能会导致进程内存泄漏。

如果将该消息传递给 DefWindowProc,或者使用 API 函数的一个 PostMessage 或 SendMessage 类转发该消息,则将通过该消息传送句柄,并且应用程序无需关闭句柄。

示例

以下代码演示用于在处理笔势后关闭 GESTUREINFO 句柄的处理程序。

  LRESULT DecodeGesture(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){    // Create a structure to populate and retrieve the extra message info.    GESTUREINFO gi;          ZeroMemory(&gi, sizeof(GESTUREINFO));        gi.cbSize = sizeof(GESTUREINFO);    BOOL bResult  = GetGestureInfo((HGESTUREINFO)lParam, &gi);    BOOL bHandled = FALSE;    if (bResult){        // now interpret the gesture        switch (gi.dwID){           case GID_ZOOM:               // Code for zooming goes here                    bHandled = TRUE;               break;           case GID_PAN:               // Code for panning goes here               bHandled = TRUE;               break;           case GID_ROTATE:               // Code for rotation goes here               bHandled = TRUE;               break;           case GID_TWOFINGERTAP:               // Code for two-finger tap goes here               bHandled = TRUE;               break;           case GID_PRESSANDTAP:               // Code for roll over goes here               bHandled = TRUE;               break;           default:               // A gesture was not recognized               break;        }    }else{        DWORD dwErr = GetLastError();        if (dwErr > 0){            //MessageBoxW(hWnd, L"Error!", L"Could not retrieve a GESTUREINFO structure.", MB_OK);        }    }    if (bHandled){        return 0;    }else{        return DefWindowProc(hWnd, message, wParam, lParam);    }  }
原创粉丝点击